Я работаю над приложением angular2, которое хочу создать с помощью gulp и browserify.
Используя tsify Мне удалось вывести автономный bundle.js
великолепного размера 1,4 МБ после минимизации.
Я хотел бы иметь два отдельных файла пакета: один для зависимостей поставщика и один для моего приложения.
В основном я надеялся добиться этого:
<!-- My dream index.html script tags -->
<script src="bundle_vendors.js"></script>
<script src="bundle_app.js"></script>
Вот что я пробовал в командной строке:
Я сгенерировал первый пакет:
browserify app/vendor.ts -p [tsify ] > bundle_vendors.js
Мой файл vendor.ts — это просто список импорта:
import 'zone.js'
import 'reflect-metadata'
import '@angular/core'
import '@angular/http'
import '@angular/router'
import '@angular/common'
import '@angular/platform-browser'
import '@angular/platform-browser-dynamic'
import 'rxjs/Rx'
Затем я создал свой второй пакет:
browserify -x @angular/core -x @angular/common -x @angular/http -x @angular/router -x rxjs/Rx -x @angular/platform-browser -x zone.js -x reflect-metadata -x @angular/platform-browser-dynamic app/main.ts -p [tsify ] > bundle_app.js
Мой файл tsconfig.json
выглядит так (живет в текущем каталоге):
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"moduleResolution": "node",
"lib": ["es6", "dom"],
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": true,
"noImplicitAny": false
},
"compileOnSave": false,
"exclude": [
]
}
Хорошая часть: второй пакет содержит только мое приложение и намного меньше!
Не очень хорошая часть: он не работает. Я браузер, я получаю Uncaught Error: Cannot find module '@angular/core'
.
На вопросы:
- Есть ли что-то очевидное, что я упускаю?
- Как я могу увидеть модули, доступные для
require
, после того, как я загрузилbundle_vendors.js
? Я ищу список модулей, которые «экспортируются», чтобы другие пакеты могли их импортировать.
Я понятия не имею, с чего начать отладку этого.
Из того, что я прочитал, альтернативой было бы использование angular-cli (который использует webpack), но проект, над которым я работаю, уже использует gulp, поэтому я хотел бы заставить его работать. К тому же я вроде как уже занят.
Любая помощь приветствуется!
watchify
была вялой... Ужасный опыт разработки. Я уверен, что это можно решить со временем / дополнительными навыками, но, как вы упомянули, это не то, где я хочу быть;). - person ldirer   schedule 17.12.2016