我正在尝试获取单个
vendor.min.js
来减少要加载的外部文件的数量,为此,我有以下 gulp 任务:
gulp.task('vendor-bundle', function() {
gulp.src([
'core-js/client/shim.min.js',
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'reflect-metadata/Reflect.js',
'rxjs/**/*.js',
'zone.js/dist/zone.js',
'@angular/**/bundles/*.umd.js',
'@ng-bootstrap/**/bundles/ng-bootstrap.js',
'jquery/dist/jquery.min.js',
'bootstrap/dist/js/*.js',
'tether/dist/**/tether.min.js',
],{cwd: "node_modules/**"})
.pipe(concat('vendors.min.js'))
.pipe(uglify())
.pipe(gulp.dest('dist'));
});
当我尝试运行 Angular 2 应用程序时,出现以下错误:
Uncaught SyntaxError: Identifier 'window' has already been declared
at vendors.min.js:1
(anonymous) @ vendors.min.js:1
app.js:1 Uncaught ReferenceError: define is not defined
at app.js:1
(anonymous) @ app.js:1
我假设这是因为将所有内容组合到一个文件中可能会导致定义冲突?
我的
app.js
中出现另一个错误,我认为这是因为 vendors.min.js
由于我收到的错误而无法加载。
是否有一种方法可以删除重复的定义,或者有更好的方法将供应商文件连接成一个文件以减少要获取的资源?
删除此行,它有重复的变量
.pipe(concat('vendors.min.js'))