我即将部署我的Angular2(基于RC5)应用程序。但是,我非常挣扎。我管理(主要是https://stackoverflow.com/a/36315060/2332153之后)使用gulp-typescript在一个uglified文件中部署我自己的代码。
然而,当我尝试捆绑供应商代码并在浏览器中运行它时,它告诉我@angular/platform-browser-dynamic
,@angular/core
和其他一些代码(http,表单,路由器,平台浏览器)不能被发现(即404)。
现在,我的问题不在于此错误的来源(我相信我错误配置了供应商文件的捆绑),而是如何正确捆绑我的供应商文件?目前,我正在做以下事情(gulp):
gulp.task('vendor-bundle', function() {
gulp.src([
'node_modules/core-js/client/shim.min.js',
'node_modules/zone.js/dist/zone.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/systemjs/dist/system.src.js',
'node_modules/rxjs/bundles/Rx.js',
'node_modules/@angular/common/bundles/common.umd.min.js',
'node_modules/@angular/compiler/bundles/compiler.umd.min.js',
'node_modules/@angular/core/bundles/core.umd.min.js',
'node_modules/@angular/forms/bundles/forms.umd.min.js',
'node_modules/@angular/http/bundles/http.umd.min.js',
'node_modules/@angular/platform-browser/bundles/platform-browser.umd.min.js',
'node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.min.js',
'node_modules/@angular/router/bundles/router.umd.min.js',
'node_modules/@angular/router-deprecated/bundles/router-deprecated.umd.min.js',
'node_modules/@angular/upgrade/bundles/upgrade.umd.min.js',
'node_modules/crypto-js/crypto-js.js',
'node_modules/dragula/dist/dragula.min.js',
'node_modules/jquery/dist/jquery.min.js',
'node_modules/bootstrap/dist/js/bootstrap.min.js',
'node_modules/papaparse/papaparse.min.js',
'node_modules/chart.js/dist/Chart.bundle.min.js',
'node_modules/showdown/dist/showdown.min.js'
])
.pipe(concat('vendors.min.js'))
.pipe(uglify())
.pipe(gulp.dest('./dist'));
});
为了完整起见,请参阅我的代码以捆绑应用程序文件。然而,我想再次指出,问题似乎是供应商捆绑。
gulp.task('app-bundle', function () {
var tsProject = ts.createProject('tsconfig.json', {
typescript: require('typescript'),
outFile: 'app.js'
});
var tsResult = gulp.src('./app/**/*.ts')
.pipe(ts(tsProject));
return tsResult.js.pipe(concat('app.min.js'))
.pipe(uglify())
.pipe(gulp.dest('./dist'));
});
如何正确捆绑供应商文件?
非常感谢和最诚挚的问候, 马里奥