Grunt Uglify - 忽略特定的文件/文件夹

7
运行uglify时,我需要让它忽略某些文件和文件夹,但仍然递归扫描整个文件夹结构。
我有一个concat任务,将所有插件合并成一个文件。我需要确保uglify忽略这些文件并且不对它们进行操作,因为我不希望它们出现在目标目录中,因为concat已经处理了它们。
我尝试使用!前缀将文件和文件夹添加到我的src数组中,但它仍会对它们进行操作。
以下是我尝试使用的代码,但它没有起作用:
uglify: {
    options: {
        banner: '/*! <%= grunt.template.today("mm-dd-yyyy h:MM:ss TT") %> */\n'
    },
    files: {
        src: [
                 '!ie'
                ,'!polyfills'
                ,'!vendor'
                ,'!iecompat.js'
                ,'**/*.js'
             ],
        dest: 'app/scripts',
        cwd: 'sources/scripts',
        ext: ".js",
        flatten: false,
        expand: true
    }
},

4
你最好将你的脚本分成两个文件夹。一个使用uglify,另一个使用concat。这样更简单,而且每个人都这么做。 - Ilan Frumer
我一直试图避免这样做,因为我手下有很多开发人员不会理解,但如果这是唯一的方法,我将把它作为最后的手段使用。 - StephenRios
假设明天你的开发人员添加了另一个库。但是嘿,它并不是被排除在外的,可能会导致构建崩溃。我认为将资产分开的这个“复杂想法”对每个人来说都会更简单,并且也不太难解释。 - Ilan Frumer
我同意@IlanFrumer的观点。我认为这样做会更清晰易懂,即使对于不熟悉Grunt的开发人员也是如此。 - Jordan Kasper
2个回答

7
伊兰·弗鲁默的建议可能是一个很好的建议。
现在,关于你具体的问题,你的模式需要按照以下方式进行调整:
示例:
 '!**/ie/*'

如果您希望忽略任何子目录中名为“ie”的文件夹中的所有文件(这可能是您想要的),请遵循以下步骤:

同样适用于:

 '!**/iecompat.js'

这会忽略在文件夹/子文件夹中的任何地方命名为iecompat.js的文件。

您应该从这里开始更好地理解grunt中的文件选择机制。


这对我没有起作用。仍然包括子文件夹。 - geoidesic

1
上面的答案对我没有用,因为它(据我所知)是在寻找子目录的子目录,而不是子目录。
这是对我有用的方法:
'!ie/**'

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