使用 grunt 复制文件夹并更改文件名
Copy folder and change file names using grunt
我想复制一个文件夹并使用 grunt 重命名该文件夹的文件。
基本结构:
mainfolder
-project
-project.js
-project.html
我想复制项目文件夹并想用 newname
替换 project
所以它看起来像:
mainfolder
-project
-project.js
-project.html
-newname
-newname.js
-newname.html
我发现重命名文件名很困难(内容被替换为新名称)。
我已按照以下步骤操作:
- 已将项目文件夹复制到 newname1 文件夹
- 替换了 newname 文件夹中的内容
- 已删除 newname1 文件夹
我尝试合并所有操作,但没有成功。
module.exports = function(grunt) {
grunt.initConfig({
copy: {
main: {
expand: true,
src: 'project/**',
dest: 'newname1',
},
},
replace: {
example: {
src: ['newname1/*'],
dest: 'newname',
replacements: [{
from: 'project',
to: 'newname'
},
{
from: 'Project',
to: 'Newname'
}
],
}
},
clean: {
folder: ['newname1']
},
rename: {
main: {
files: [{
src: ['newname/**]'],
dest: 'newname/**]'
}, ]
}
}
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-text-replace');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.registerTask('default', ['copy', 'replace', 'clean']);
};
您可以使用自己的函数在 grunt copy
内部进行重命名,如下所示:
我删除了 newname1
文件夹和 clean
任务,因为它们看起来多余。
module.exports = function(grunt) {
grunt.initConfig({
copy: {
main: {
expand: true,
cwd:"project",
src: '**',
dest: 'newname/',
rename: function(dest, src) {
if(src.indexOf('.')>0){
return dest+"newname"+src.substring(src.indexOf('.'),src.length);
}else{
return dest
}
},
},
},
replace: {
example: {
src: ['newname/*'],
dest: 'newname/',
replacements: [{
from: 'project',
to: 'newname'
},
{
from: 'Project',
to: 'Newname'
}
],
}
},
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-text-replace');
grunt.registerTask('default', ['copy', 'replace']);
};
我想复制一个文件夹并使用 grunt 重命名该文件夹的文件。
基本结构:
mainfolder
-project
-project.js
-project.html
我想复制项目文件夹并想用 newname
替换 project
所以它看起来像:
mainfolder
-project
-project.js
-project.html
-newname
-newname.js
-newname.html
我发现重命名文件名很困难(内容被替换为新名称)。 我已按照以下步骤操作:
- 已将项目文件夹复制到 newname1 文件夹
- 替换了 newname 文件夹中的内容
- 已删除 newname1 文件夹
我尝试合并所有操作,但没有成功。
module.exports = function(grunt) {
grunt.initConfig({
copy: {
main: {
expand: true,
src: 'project/**',
dest: 'newname1',
},
},
replace: {
example: {
src: ['newname1/*'],
dest: 'newname',
replacements: [{
from: 'project',
to: 'newname'
},
{
from: 'Project',
to: 'Newname'
}
],
}
},
clean: {
folder: ['newname1']
},
rename: {
main: {
files: [{
src: ['newname/**]'],
dest: 'newname/**]'
}, ]
}
}
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-text-replace');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.registerTask('default', ['copy', 'replace', 'clean']);
};
您可以使用自己的函数在 grunt copy
内部进行重命名,如下所示:
我删除了 newname1
文件夹和 clean
任务,因为它们看起来多余。
module.exports = function(grunt) {
grunt.initConfig({
copy: {
main: {
expand: true,
cwd:"project",
src: '**',
dest: 'newname/',
rename: function(dest, src) {
if(src.indexOf('.')>0){
return dest+"newname"+src.substring(src.indexOf('.'),src.length);
}else{
return dest
}
},
},
},
replace: {
example: {
src: ['newname/*'],
dest: 'newname/',
replacements: [{
from: 'project',
to: 'newname'
},
{
from: 'Project',
to: 'Newname'
}
],
}
},
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-text-replace');
grunt.registerTask('default', ['copy', 'replace']);
};