如何使用自己的选项配置来对concat和uglify进行grunt-usemin操作

9
例如: 我正在使用以下当前配置在我的Gruntfile中对JS脚本进行压缩: uglify
    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 -->

那么我该如何配置grunt-usemin,以使用这些相同的选项,例如bannersourceMap: false与生成的文件块一起?我已经阅读了通常在GitHub或NPM注册表中提供的简要文档,但似乎没有找到一个确定的答案。

1个回答

13

在文档中有一句非常重要的话:

此外,useminPrepare动态生成concat、uglify和cssmin的配置。重要提示:您仍然需要手动管理这些依赖项并调用每个任务。

原则是只声明您想要使用usemin(在grunt register任务中),以及您想要使用的所有主要任务:concat、uglify等。 Usemin将默认创建所有这些任务,不再需要其他声明,根据您registertask选项和html标记注释。

代码胜过文字:

  1. 表达你的块标记目标文件。在您的情况下,类似于以下内容:
     <!-- 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,只需重写配置代码而不重新定义一切:

uglify: { options: { sourceMap: false } }

希望能对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接