gpt4 book ai didi

concat - 使用 grunt concat,我如何自动将同一文件连接到许多其他文件?

转载 作者:行者123 更新时间:2023-12-03 23:32:30 30 4
gpt4 key购买 nike

要连接两个文件,它看起来像这样:

  concat: {
src: ['common.js','js/app.js'],
dest: 'assets/js/app.js'
}

如果我想将整个文件夹合并成一个文件夹,它看起来像这样:
  concat: {
src: ['dev/*.js','],
dest: 'prod/js/app.js'
}

但是,假设我有一个文件要连接到 10 或 20 个其他文件,并且我希望它们分别连接?换句话说,这就是我要找的:
A.js + B.js = AB.js
A.js + C.js = AC.js
A.js + D.js = AD.js
A.js + E.js = AE.js

依此类推……更具体地说,我可以弄清楚如何按照描述的方式一个一个地连接文件,但我想弄清楚如何从示例中指定 A.js,并将其连接到任何文件中指定的路径。所以我想要的是:
A.js + dev/*.js = AB.js, AC.js, AD.js, AE.js ...

在伪代码中,这是我想要的:
  concat: {
src: ['common.js', 'dev/*.js','], // common.js gets concatenated to each file in this directory
dest: 'prod/js/*.js' // each file in src gets saved separately in dest
}

我很感激任何帮助,我很难找到有关如何执行此操作的信息

最佳答案

Grunt 的内置 concat任务(顺便说一句,我建议查看源代码)不支持类似 dest: 'prod/js/*.js' 的任何内容。 ,您必须分别指定每个输出目标,这在您的情况下是一种矫枉过正。

最好的办法是编写自己的代码(也许将其包装在您的自定义任务中),这非常简单。这是一个简单的包装多任务。不要 promise 它的强大和安全使用:)

  grunt.registerMultiTask('wrap', 'Wraps source files with specified header and footer', function() {
var data = this.data,
path = require('path'),
dest = grunt.template.process(data.dest),
files = grunt.file.expandFiles(this.file.src),
header = grunt.file.read(grunt.template.process(data.header)),
footer = grunt.file.read(grunt.template.process(data.footer)),
sep = grunt.utils.linefeed;

files.forEach(function(f) {
var p = dest + '/' + path.basename(f),
contents = grunt.file.read(f);

grunt.file.write(p, header + sep + contents + sep + footer);
grunt.log.writeln('File "' + p + '" created.');
});
});

用这样的配置提供它:
wrap: {
html: {
header: '<%= project.partials %>/head.html',
footer: '<%= project.partials %>/footer.html',
src: [
'<%= project.pages %>/index.html',
'<%= project.pages %>/about.html',
'<%= project.pages %>/blog.html'
],
dest: '.' // destination *directory*, probably better than specifying same file names twice
}
}

以防万一我也更新了你的 fiddle : http://jsfiddle.net/dipish/hKkGX/

关于concat - 使用 grunt concat,我如何自动将同一文件连接到许多其他文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12722855/

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