将`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));