javascript - Grunt Task Runner 连接文件

标签 javascript node.js grunt-contrib-concat

我正在编写 grunt 来动态连接文件,因为我的 grunt.config 变量中有文件数组。如何在 grunt concat 中使用它。

我正在从动态文本替换函数编写 grunt.config('jsResources', targetConfig); 。它作为数组返回。如何在 grunt concat 中使用它。我尝试过这种方式,但那不值得。

我的jsResources是数组。我的咕噜声就像

concat: {
    js: {
        //Concatenate all of the files in the jsResources configuration property
        src: ['app/<%= jsResources %>'],
        dest: 'build/views/js/combined.js',
        options: {
            separator: ';\n'
        }
    }            
}

它替换了内容,但无法读取内容,并在我的combine.js中连接 我的 'jsResources' 就像 ['scripts/modules/allModules.js','scripts/config/constants.js','...'] 它创建空文件 combine.js .

最佳答案

所以我又试了一次,结果是这样的:

在将路径放入模板变量之前,您需要生成路径。模板化变量这里是一个对象,但可以是任何有效的jsmore info 。在其中您可以设置以数组为值的属性。

module.exports = function(grunt) {

  var myFiles = {
    jsResources: ['file1.js', 'file2.js']
  };

  myFiles.jsResources = myFiles.jsResources.map(function(item) { return 'app/' + item; });

  // var jsres = myFiles.jsResources; // another way

  grunt.initConfig({
    // myFiles: myFiles, // this is also possible instead of grunt.config() below
    concat: {
      dist: {
        src: ['<%= myFiles.jsResources %>'], // src: ['<%= jsres %>'],
        dest: 'dest.js',
      },
      options: {
        separator: '\n'
      }
    }
  });

  grunt.config('myFiles', myFiles);
  // grunt.config('jsres', jsres); // another way

  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.registerTask('default', ['concat:dist']);

};

这会生成包含内容的 dest.js

关于javascript - Grunt Task Runner 连接文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34128966/

相关文章:

php - IE 6 不支持我的代码的哪一部分

javascript - jQuery DataTables - 序列化不工作

javascript - MongoDB 查找文档如果存在 - 更新否则 - 插入

node.js - 当我尝试使用工作 URL 连接到同一个数据库时,Mongoose 永远不会返回它的 promise

javascript - Grunt useminPrepare 和 usemin 不能处理多个任务和文件(concat 失败)

javascript - 在监听更改时查询多个键 - Firebase

javascript - AngularJS 指令使用参数运行回调

node.js - ERRInstance(索引 0)无法开始接受连接

javascript - Gruntfile 任务未正常运行

javascript - 正在加载 "Gruntfile.js"任务...运行 `grunt` 时出错