grunt-contrib-clean删除除一个文件夹及其内容之外的所有文件夹/文件

时间:2014-07-04 06:47:56

标签: javascript node.js gruntjs

如何使用grunt-contrib-clean取消对特定文件夹的清理。否定比赛似乎不起作用。

clean: {
    plugins: [ 
        'app/plugins/myplugin',
        '!app/plugins/myplugin/assets'
    ]
}

我尝试了几种不同的否定模式,例如:

'!app/plugins/myplugin/assets'
'!app/plugins/myplugin/assets/**'

以及在重要的情况下反转阵列中的位置。似乎无法保持clean上的资产文件夹/内容。 assets文件夹包含jQuery,AngularJS和内置的Bootstrap(SASS),我不想继续复制/构建,这似乎是浪费时间。

2 个答案:

答案 0 :(得分:10)

我快速设置了一个像您一样的文件夹结构并尝试了以下内容,这对我有用:

clean: {
    options: {
        'no-write': true
    },
    plugins: ['app/plugins/myplugin/**/*', '!app/plugins/myplugin/assets/**']
}

第一个通配符选择myplugin文件夹和所有子文件夹(但不是目录myplugin本身!)内的所有文件,而否定取消选择整个资产目录,包括所有子文件夹和文件。

您应该删除选项字段以进行实际测试,因为no-write: true仅模拟干净但实际上没有删除文件。

希望有所帮助!

答案 1 :(得分:0)

除了require.js之外,我希望能够吹掉所有的bower_components。以下是我在gruntFile中的表现:

            /* all bower components except require */
            applicationDistHome + '/bower_components/**/*',
            '!' + applicationDistHome + '/bower_components/requirejs/**',
            applicationDistHome + '/bower_components/requirejs/*',
            '!' + applicationDistHome + '/bower_components/requirejs/require.js',