如何制作一个JSON来放入src和dest地址,我们可以在我们的grunt.js中调用那个JSON?

时间:2012-12-13 19:05:40

标签: javascript json node.js gruntjs

我正在使用grunt制作构建工具,直到现在我将srcdest地址直接放在我的grunt.js文件中,但在这种情况下,如果我想要更改我的目标我必须在文件的每个任务中进行更改,这不是一个好习惯。例如,如果我的grunt.js文件有以下任务:

concat: {
  js: {
    src: 'src/js/*.js',
    dest: 'dest/js/concat.js'
  },
  css: {
    src: 'src/css/*.css',
    dest: 'dest/css/concat.css'
  }
},
min: {
  js: {
    src: 'dest/js/concat.js',
    dest: 'dest/js/concat.min.js'
  }
},

如果我改变地址,我必须在每个地方改变!!! 我想要一个JSON文件,我可以在其中声明src和dest并在我的grunt.js文件中调用。我们怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您可以向package.json添加属性以声明元数据,例如

{
   "name": "test",
   "meta":{
     "src":"someSrcFolder",
     "dest":"someDestFolder"
   },
 ....
}

然后在Gruntfile.js中,您可以阅读这些属性

grunt.initConfig({
  pkg: '<json:package.json>',
  concat: {
    js: {
      src: '<%= pkg.meta.src %>/js/*.js',
      dest: '<%= pkg.meta.dest %>/js/concat.js'
    },
    css: {
      src: '<%= pkg.meta.src %>/css/*.css',
      dest: '<%= pkg.meta.dest %>/css/concat.css'
    }
  }
});

重要位是pkg:<json:package.json>,它将json文件加载到内存中,下划线模板插值<%= pkg.meta.src %>计算添加到json文件的meta属性的内容。

请记住, Gruntfile 只是一个JavaScript文件,因此您还可以拥有一个引用路径的对象,然后将它们插入到您的任务中。

答案 1 :(得分:1)

这在Grunt.js 0.4.0中有所改变。

您现在可以使用:pkg: grunt.file.readJSON('package.json')