我使用的是一个运行AngularJS应用程序的yeoman web应用程序模板。usemin
很棒,但AngularJS文件必须使用ngmin
进行预处理才能进行注释,然后才能使用usemin
进行丑化和缩小。
我可以使用ngmin
生成一个带有注释的AngularJS控制器、指令、服务等的级联文件。
ngmin: {
build: {
src: ['<%= yeoman.app %>/js/one.js','<%= yeoman.app %>/js/two.js'],
dest: '<%= yeoman.dist %>/ng/annotated.js'
}
}
基本上,我运行的构建成功地创建了annotated.js
。
我想要的是在index.html
中声明annotated.js
文件,以通知usemin
仅将该文件用于分发,而不是我提到的用于开发的文件。
<!-- build:js js/app.min.js --> //annotated.js only must be processed instead of those 2 files.
<script src="js/one.js" type="text/javascript"></script>
<script src="js/two.js" type="text/javascript"></script>
<!-- endbuild -->
作为参考,我的usemin配置:
useminPrepare: {
options: {
dest: '<%= yeoman.dist %>'
},
html: '<%= yeoman.app %>/index.html'
},
usemin: {
options: {
dirs: ['<%= yeoman.dist %>']
},
html: ['<%= yeoman.dist %>/{,*/}*.html'],
css: ['<%= yeoman.dist %>/css/{,*/}*.css']
}
作为参考,我的构建任务:
grunt.registerTask('build', [
'clean:dist',
'useminPrepare',
'concat',
'cssmin',
'ngmin',
'uglify',
'copy:dist',
'rev',
'usemin'
]);
我怎样才能做到这一点?
那么,您使用yo webapp
生成了一个应用程序,然后将Angular插入其中?对于你未来创建的Angular应用程序(或者如果现在还不算太晚的话),有一个生成器!https://github.com/yeoman/generator-angular
这里有一个链接和一些代码,显示了如何使用Angular生成器预配置ngmin
任务:
https://github.com/yeoman/generator-angular/blob/v0.4.0/templates/common/Gruntfile.js#L326-335
ngmin: {
dist: {
files: [{
expand: true,
cwd: '<%= yeoman.dist %>/scripts',
src: '*.js',
dest: '<%= yeoman.dist %>/scripts'
}]
}
}
插入,根据需要进行调整,并让我知道它是否有效!