【问题标题】:Grunt Uglify - Ignore Specific Files/FoldersGrunt Uglify - 忽略特定文件/文件夹
【发布时间】:2014-02-05 14:44:17
【问题描述】:

运行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
    }
},

【问题讨论】:

  • 你最好把你的脚本分成两个文件夹。在一个上使用 uglify,在另一个上使用 concat。它更简单,每个人都在这样做。
  • 我试图避免这样做,因为我手下有很多开发人员不会理解,但如果这是唯一的方法,我将把它用作最后的手段。
  • 假设明天您的开发人员会添加另一个库。但是,嘿,它并没有被排除在外并使他们的构建崩溃。我认为这种划分资产的“复杂想法”对每个人来说都会更简单,也不会太难解释。
  • 我同意@IlanFrumer 的观点。我认为其他开发者(甚至那些不熟悉 Grunt 的开发者)会更清楚、更容易理解。

标签: gruntjs grunt-contrib-uglify


【解决方案1】:

Ilan Frumer 的建议可能是一个不错的建议。

现在,关于您的具体问题,您的模式当然需要进行如下调整:

例子:

 '!**/ie/*'

将忽略子目录中任何位置名为“ie”的文件夹中的任何文件(这可能是您想要的,对吗?)

同样适用:

 '!**/iecompat.js'

这将忽略文件夹/子文件夹中任何位置名为 iecompat.js 的文件。

您应该开始here 以更好地了解 grunt 中的文件选择机制。

【讨论】:

  • 这对我不起作用。仍然包括子文件夹。
【解决方案2】:

上述答案对我不起作用,因为那是(据我所知)寻找子文件夹,而不是子文件夹。

这对我有用:

'!ie/**'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-18
    • 2018-03-07
    • 2019-10-18
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多