Yeoman + Grunt禁用Uglify

时间:2015-02-16 11:55:15

标签: google-chrome-extension gruntjs yeoman grunt-usemin

背景:

我正在使用Chrome扩展程序。我使用了自耕农generator。它就像一个魅力。部署扩展后,我需要调试一些问题。

问题:

代码被丑化了。我无法设定断点。我几乎看不懂。它也是优化的。这使得它也难以阅读。我想告诉Grunt跳过丑化代码。

尝试的解决方案:

  1. 我试图在Grunt文件中注释掉uglify任务。如果我这样做,不仅uglify没有被执行,而且大多数脚本都无法复制到" dist"目录。
  2. 我可以从" app"部署应用程序目录。如果我这样做,我的人工编写的代码将被加载而不是" dist"值。虽然这有效,但我希望更多地了解Grunt的内部运作方式。似乎有一些机制可以在保留复制的同时禁用uglification。

1 个答案:

答案 0 :(得分:1)

它是为uglify任务提供目标的usemin任务。当您注释掉uglify任务时,usemin无法完成其流程(默认为concat和uglify),并且脚本永远不会被复制。

因此,您必须在useminPrepare选项中配置流程。像这样:

[...]
useminPrepare: {
    options: {
        stripBanners: true,
        dest: '<%= config.dist %>',
        flow: {
            steps: {
                js: ['concat'], css: ['concat', 'cssmin']
            },
            post: {}
        }
    },
[...]

通过这种方式,您可以从构建序列中删除uglify任务(您必须,因为它会投诉没有目标并失败)。

此处的文档:https://github.com/yeoman/grunt-usemin#flow