配置grunt copy任务,排除文件/文件夹
Configure grunt copy task to exclude files/folders
我已安装grunt任务grunt-contrib-copy
。我将它嵌入到Gruntfile.js
中,并通过grunt.loadNpmTasks('grunt-contrib-copy');
加载任务。
目前,我使用以下配置来创建一个文件夹,其中包含我的js文件/文件夹的子集。
copy: {
options: {
processContent: [],
processContentExclude: ['build/**', 'bin/**', '.*', '*.orig', '*.bak', '.*/**', '*.log', 'dist/**', 'test/**', 'dev/**', 'pyserver/**', 'node_modules/**', 'doc/**']
},
du: {
files: [
{src: ['.conf1', '.conf2', './config.js'], dest: 'output/toolkit/', filter: 'isFile'},
{src: ['./css/**/*', './img/**/*', './js/**/*', './release/**/*', './lib/**/*', './locale/**/*'], dest: 'output/toolkit/'},
{expand: true, cwd: './', src: ['**'], dest: 'output/'}
]
}
}
这个工作得很好,但是每次我运行grunt copy时,它都会退出并显示以下错误消息:
Copying Gruntfile.js -> output/Gruntfile.js
Warning: Error while processing "Gruntfile.js" file. Use --force to continue.
我想在js/**/*
中排除Gruntfile.js
和所有*.less
文件。用!(.less), !.less, !(*.less), !(./Grunfile.js), !(*Gruntfile.js)
试过了…但什么都没用。将它添加到processContentExclude
数组中,但也没有成功。
那么我如何排除Gruntfile.js
和文件夹结构js/**/*
中的所有less文件?
找到解决方案:
不需要这些行:
files: [
{src: ['.conf1', '.conf2', './config.js'], dest: 'output/toolkit/', filter: 'isFile'},
{src: ['./css/**/*', './img/**/*', './js/**/*', './release/**/*', './lib/**/*', './locale/**/*'], dest: 'output/toolkit/'},
{expand: true, cwd: './', src: ['**'], dest: 'output/'}
]
因为{expand: true, cwd: './', src: ['**'], dest: 'output/'}
是一个新的复制步骤,将所有文件从./
复制到output
。这对我来说是不需要的,因为上面的行已经将所需的文件复制到output/toolkit
。
那么下面两行就完成了任务。不需要选择或其他任何东西。为了防止*.less
文件进入,'!**/*.less'
完成了这项工作。
files: [
{src: ['.conf1', '.conf2', 'config.js'], dest: 'output/toolkit/', filter: 'isFile'},
{src: ['css/**', 'img/**', 'js/**', 'release/**', 'lib/**', 'locale/**', '!**/*.less'], dest: 'output/toolkit/'}
]
我想在我的副本中排除所有.gz文件,这个选项对所有文件夹都有效
{
expand: true,
cwd: './build/www/',
src: [ '**', '!**/*.gz' ],
dest: './mydDest'
}
所以可以试试!**/*.less, !gruntfile.js
(没有父母)
如果您可以自由地更改为其他Grunt任务:
还有https://github.com/clavery/grunt-copy-to,它有一个显式的"忽略"选项来指定要忽略的文件和目录。Github中的README显示了一个示例配置,其中包括忽略选项。
它的工作方式与常规复制有点不同,因为它尊重修改时间。但这实际上可能是受欢迎的(我就是这样)。
来自README:
类似于grunt-contrib-copy,但只复制较新的文件,并维护被复制文件的修改时间。用于创建构建目录,这些目录可以稍后使用依赖于文件修改时间的工具进行同步。
(我只是那个项目的一个用户(至少到目前为止))
假设'Gruntfile.js'在根目录下,复制选项的最后一行是配置它将根目录下的所有内容复制到'output/'。
如果这是有意的,添加'!Gruntfile.js'到你的src文件路径数组。
{
expand: true,
cwd: './',
src: ['**'], // ex. src: ['**', '!Gruntfile.js'],
dest: 'output/'
}
参考本线程和原线程的解决方案
我想这个应该可以了。不需要/**/*
。/**
覆盖了path及其子目录
{src: ['./css/**', './img/**', './js/**', './release/**', './lib/**', './locale/**'], dest: 'output/toolkit/'},
{expand: true, cwd: './', src: ['**'], dest: 'output/'}
- 将配置文件文件夹移动到sdcardfirefoxmobile14.0
- Grunt imagemin-观察多个文件/文件夹优化单个文件
- Angular 2-模型驱动的表单,带有输入文件(文件上传)
- 将整个JavaScript文件文件夹添加到HTML5应用程序缓存中
- HTML或JavaScript,如何找出程序文件文件夹的位置
- 使用 OS 在 JavaScript 中预置文件.文件
- 使用纯 JavaScript 创建文件/文件夹
- 基本脚本,它向自己发送一封包含从文件文件夹中随机选择的内容的邮件
- 巴贝尔节点不't编译时忽略指定的文件/文件夹
- 在以下场景中,如何使代码可用于多个文件文件对象
- Chrome拖放文件/文件夹不工作
- Bootstrap fileinput删除所有文件文件,而不是要删除的特定预览文件
- 如何在SonarQube 4.4's技术债务计算中忽略文件/文件夹?
- OneDrive for Business是否有客户端javascript库提供文件/文件夹选择器控件?
- 将文件从插件复制到配置文件文件夹
- 从sd卡复制目录到“文件”;文件夹中
- 逐行读取上传的文件.文件,使用cfs:gridfs存储)
- 配置grunt copy任务,排除文件/文件夹
- 用于检查CSS和JS文件文件夹的工具
- gruntjs:将文件+文件夹重命名为任务