gpt4 book ai didi

gruntjs - 如何根据相应文件的父文件夹名称使用 Grunt 重命名文件?

转载 作者:行者123 更新时间:2023-12-03 06:05:08 25 4
gpt4 key购买 nike

我有以下结构:

src/
modules/
module1/
js/
main.js
scss/
main.scss
index.html
module2/
js/
main.js
scss/
main.scss
index.html

我想运行一个 grunt 任务将它们复制到以下结构:

dev/
js/
module1.js
module2.js
css/
module1.css
module2.css
module1.html
module2.html

有没有办法使用现有的 grunt 插件来做到这一点?如果没有,我怎样才能实现这一目标?

最佳答案

这可以使用 grunt-contrib-copy 来完成插件。

需要注意的主要事情是,您可以使用重命名函数(它接受每个文件的目标和源)以编程方式更改目标。

这是一个(有点脆弱)示例 Gruntfile.js,应将其复制到您想要的结构:

module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
copy: {
main: {
files: [
{
expand: true,
cwd: 'src/modules/',
src: ['**/*.js'],
dest: 'dev/js/',
rename: function(dest, src) {
// use the source directory to create the file
// example with your directory structure
// dest = 'dev/js/'
// src = 'module1/js/main.js'
return dest + src.substring(0, src.indexOf('/')) + '.js';
}
},
{
expand: true,
cwd: 'src/modules/',
src: ['**/*.scss'],
dest: 'dev/css/',
rename: function(dest, src) {
return dest + src.substring(0, src.indexOf('/')) + '.css';
}
},
{
expand: true,
cwd: 'src/modules/',
src: ['**/*.html'],
dest: 'dev/',
rename: function(dest, src) {
return dest + src.substring(0, src.indexOf('/')) + '.html';
}
}
]
}
}
});

grunt.loadNpmTasks('grunt-contrib-copy');

// Default task(s).
grunt.registerTask('default', ['copy']);
};

关于gruntjs - 如何根据相应文件的父文件夹名称使用 Grunt 重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15271121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com