如何使用我自己的选项configurationconcat和uglify与grunt-usemin

例如:我使用下面的当前configurationuglify我的Gruntfile中的JS脚本:

  uglify: { options: { report: "min", //"gzip", sourceMap: true, preserveComments: false, //"some", "all" }, application: { options: { // expand: true, banner: '<%= app.banner %>', preserveComments: "some" }, src: 'dist/js/application.js', dest: ".tmp/js/application.min.js" }, dependencies: { options: { sourceMap: false }, src: ['dist/js/dependencies.js'], dest: ".tmp/js/dependencies.min.js" }, 

我知道,grunt-usemin从useminPrepare gruntfile选项中声明的html文件中的代码块生成srcdest选项,例如:

  <!-- build:js js/app.js --> <script src="js/app.js"></script> <script src="js/controllers/thing-controller.js"></script> <script src="js/models/thing-model.js"></script> <script src="js/views/thing-view.js"></script> <!-- endbuild --> 

那么如何configurationgrunt-usemin使用这些相同的选项,例如bannersourceMap: false和生成的文件块,我已经阅读了github或NPMregistry中的快速文档,但似乎没有find一个确切的答案对此。

一个句子在文档中非常重要:

另外,useminPreparedynamic生成concat,uglify和cssmin的configuration。 重要提示:您仍然需要手动pipe理这些依赖项并调用每个任务。

原则是只声明你想要使用usemin(在grunt注册任务中)你想要的所有主要任务:concat,uglify … Usemin将默认创build所有这些任务,不再声明,基于你的registertask选项和html标记注释。

代码比单词好:

  1. expression你的块标记目标文件 。 在你的情况下是这样的:
  <!-- build:js js/app.min.js --> <script src="js/app.js"></script> <script src="js/controllers/thing-controller.js"></script> <script src="js/models/thing-model.js"></script> <script src="js/views/thing-view.js"></script> <!-- endbuild --> 

2 – 在运行期间注册您希望usemin生成的任务(它不会在文件中生成任何内容 – 应该在文档中进行精简)。 例如 :

grunt.registerTask('minify',['useminPrepare','concat','cssmin','uglify','copy'
,'rev',usemin'])

3 – 默认情况下,除了useminPrepare和usemin之外,所有这些任务都会生成(查看这两个块的文档grunt-usemin )。

然后,如果你想添加像sourcemap这样的特定选项,只需重写configuration代码,而不用重新定义所有的东西:

uglify:{options:{sourceMap:false}}

希望能帮助到你。