压缩供应商 JS 库

问题描述 投票:0回答:1

我正在尝试获取单个

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
由于我收到的错误而无法加载。

是否有一种方法可以删除重复的定义,或者有更好的方法将供应商文件连接成一个文件以减少要获取的资源?

javascript angular gulp
1个回答
0
投票

删除此行,它有重复的变量

 .pipe(concat('vendors.min.js'))
© www.soinside.com 2019 - 2024. All rights reserved.