我在一个项目中使用 browserify 和 browserify-shim,使用 gulp-browserify 通过 gulp 运行。
gulp.src(['./resources/js/main.js'])
.pipe(browserify({
shim: {
angular: {
path: './node_modules/angular/angular.js',
exports: 'angular'
},
'angular-animate': {
path: './node_modules/angular-animate/angular-animate.js',
exports: 'ngAnimate',
depends: {
angular: 'angular',
jQuery: 'jQuery'
}
},
[...]
}
}))
.pipe(concat('app.js'))
.pipe(gulp.dest('./web/js'));
此设置工作正常,并且对于大多数部分而言,如预期的那样。但是,Browserify 将始终在构建中包含所有已填充的库,即使它们都没有被 require() 调用。
该主题的文档似乎不存在。有没有办法防止这种情况?这对我来说似乎非常违反直觉 - 构建应该只包含我实际需要的内容。
(更新:我使用 napa/npm 安装了 angular 和其他库)