Grunt中性重复内容

时间:2014-10-14 07:39:18

标签: gruntjs vagrant

在过去的几天里,我遇到了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来完成这项任务?

我将不胜感激任何帮助。

1 个答案:

答案 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**
});