プロジェクトで 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() によって呼び出されるライブラリがない場合でも、常にすべての shimmedライブラリをビルドに含めます。
このトピックに関するドキュメントは存在しないようです。これを防ぐ方法はありますか?私には非常に直感に反するように思えます.ビルドには、実際に必要なものだけを含める必要があります。
(更新:napa/npmを使用してangularおよびその他のライブラリをインストールしました)