将`grunt.file.readJSON`转换为吞咽

我正在将一个Grunt文件转换成一个Gulp文件。 我的Grunt文件包含以下行

var config = grunt.file.readJSON('json/config.json'); 

这一行正在做的是设置一些variables,然后注入到它生成的html中,特别是与语言有关的variables。

我试着用grunt2gulp.js自动转换文件,但是它总是失败, config undefined 。 我将如何使用grunt.file.readJSON编写grunt.file.readJSON

在node / io.js中加载JSON文件的最简单方法是直接使用require

 var config = require('json/config.json'); 

这可以代替任何readJSON调用你也一般工作 。 Node / io.js能够同步地require开箱即用的json文件。

由于这是一个.json文件,本杰明的答案工作得很好(只require()它)。

如果您有任何configuration是有效的JSON,但没有存储在以.json扩展名结尾的文件中,则可以使用jsonfile模块加载它们,或使用稍微冗长的

 JSON.parse(require('fs').readFileSync("...your file path here...")) 

(如果你已经加载了fs ,这往往是阻力最小的path)

require (这几乎是使用这个代码加载json文件)和这个代码之间的一个很大的区别是require使用Node的caching机制,所以多个require只会导入文件一次,然后返回指向parsing的数据,有效地使所有的东西共享相同的数据对象。 有时候这太棒了,有时候这绝对是灾难性的,所以记住这一点

(如果你绝对需要唯一的数据,但你喜欢方便的require ,你总是可以做一个快速的var data = require("..."); copied = JSON.parse(JSON.stringify(data));