基本思想是
- 連接所有js文件(以正確的順序排列,以便模塊定義先於控制器/服務)
- 最小化是否用於生產
- 復制到固定路徑
- 在您的html中包含此單個js文件
- 在開發過程中,讓您的grunt / gulp腳本監視js文件中的更改,然后重新運行上述步驟,因此您不必手動運行grunt / gulp任務。
現在,如果您正在使用gulp,則通常按照以下步驟操作
gulp.task('process-js', function () {
return gulp.src(jsFiles, {base: './'})
.pipe(gulpif(isProd, concat('all.min.js'), concat('all.js')))
.pipe(gulpif(isProd, uglify({mangle: true, preserveComments: 'some'})))
.pipe(gulp.dest(deployFolder + '/static/js'))
});
其中jsFiles是包含您的角度應用js文件的文件/文件夾的數組
var jsFiles = [
'!static/js/**/*.js',
'!static/js/plugin/**/*.*',
'app/index/**/*module.js',
'app/index/**/*config.js',
'app/index/**/*ctrl.js'
];
注意:使用!
前綴以排除某些文件/文件夾。
isProd
只是一個標志,指示您是准備進行生產還是開發。
在開發期間,我還使用BrowserSync監視對js文件的任何更改,然后重新運行gulp任務以准備all.js
它還會自動刷新瀏覽器中的頁面。
gulp.task('run', function () {
browserSync({
server: {
baseDir: deployFolder
},
open: true,
browser: ['google chrome'],
files: deployFolder + '/**/*',
watchOptions: {
debounceDelay: 2000
}
});
gulp.watch(jsFiles, ['process-js']);
});
gulp.task('default', function () {
runSequence(
'clean',
'run'
);
});