在过去的几天里,我遇到了Grunt-neuter的问题,它重复了文件的内容。
我的源文件夹结构:
javascript/
main.js (with @import()'s )
routes/
route_home.js
route_about.js
route_contact.js
route_products.js
我的目标文件夹结构应该看起来像源码,我说得对。 中性路径文件具有相同内容后出现的错误(route_home.js == route_about.js等)
中性任务:
neuter: {
main: {
options: {
filepathTransform: function (filepath) {
return config.app + '/' + filepath;
}
},
files: [{
expand: true,
cwd: '<%= config.app %>/public/js',
src: ['*.js'],
dest: '<%= config.dist %>/scripts'
}]
},
routs: {
options: {
filepathTransform: function (filepath) {
return config.app + '/' + filepath;
}
},
files: [{
expand: true,
cwd: '<%= config.app %>/public/js/routs/',
src: ['**/*.js'],
dest: '<%= config.dist %>/scripts/routs'
}]
}
},
我将此任务拆分为两个,因为在此之前,main.js内容与路径文件相同。
(Ubuntu 14.04在Vagrant上运行)
更新
仍然无法做到这一点。
所以,我会给你一些例子,也许任何人都可以帮助我。
这是两个路径文件内容route_about.js:
//route_about.js
route_houme.js:
//route_home.js
这是输出route_about.js:
(function() {
//route_about.js
})();
route_houme.js:
(function() {
(function() {
//route_about.js
})();
})();
(function() {
//route_home.js
})();
正如您所看到的,第一个文件是正常的,但第二个文件的第一个内容是使用function(),然后添加第二个文件内容。
或者也许你可以提供任何一个atlernative来完成这项任务?
我将不胜感激任何帮助。
答案 0 :(得分:0)
经过长时间的研究,我发现Grunt-neuter插件存在问题。为它做了一些改变,现在它可以正常工作。
如果您要查看中性任务,您会发现有两个变量已经被请求&#39;和&#39; out&#39; witch包含每个文件的参数。问题是这些变量包含来自上一次文件迭代的旧值。要解决此问题,您需要添加以下行:
});
**required = []; //at 144 line**
// test if template block has newlines to offset against
var m, n, beforeOffset, afterOffset;
{...}
grunt.file.write(file.dest + ".map", JSON.stringify(newSourceMap, null, ' '));
}
**out = []; //at line 200**
});