似乎您需要定义自定义块。将展示示例 - 仅使用 concat 创建自定义块“myjs”。
Gruntfile.js
useminPrepare: {
html: '<%= config.app %>/index.html',
options: {
dest: '<%= config.dist %>',
flow: {
// i'm using this config for all targets, not only 'html'
steps: {
// Here you define your flow for your custom block - only concat
myjs: ['concat'],
// Note that you NEED to redefine flow for default blocks...
// These below is default flow.
js: ['concat', 'uglifyjs'],
css: ['concat', 'cssmin']
},
// also you MUST define 'post' field to something not null
post: {}
}
},
},
您还需要为自定义块定义块替换。这些块应该与 js 相同。
Gruntfile.js:
usemin: {
options: {
assetsDirs: ['<%= config.dist %>', '<%= config.dist %>/images'],
blockReplacements: {
// our 'replacement block'
myjs: function (block) {
return '<script src="' + block.dest + '"></script>';
}
// no need to redefine default blocks
}
},
html: ['<%= config.dist %>/{,*/}*.html'],
css: ['<%= config.dist %>/styles/{,*/}*.css']
},
所以,现在您可以在 index.html 中使用新的自定义块:
<!-- build:myjs js/lib.js -->
<script src="lib/angular/angular.min.js"></script>
<script src="lib/angular-cookies/angular-cookies.min.js"></script>
<script src="lib/angular-route/angular-route.min.js"></script>
<!-- endbuild -->
<!-- build:js js/app.js -->
<script src="js/app.js"></script>
<script src="js/controllers/LanguageCtrl.js"></script>
<!-- endbuild -->
现在它应该按您想要的方式工作。我还没有测试过这段代码,但我的应用程序中有非常相似的配置,而且它的工作原理就像一个魅力。我在定义替换块时也遇到了一些问题 - 这非常令人沮丧。
希望能帮助到你!