将 `grunt.file.readJSON` 转换为 gulp

Converting `grunt.file.readJSON` to gulp

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

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

这一行所做的是设置一些变量,然后将这些变量注入到它生成的 html 中,特别是与语言相关。

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

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

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

这可以替代您的任何 readJSON 个电话和 also works generally。 Node/io.js 能够同步 require json 开箱即用的文件。

因为这是一个 .json 文件,Benjamin 的回答工作得很好(只是 require() 它在里面)。

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

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

(如果您已经加载了 fs,这往往是阻力最小的路径)

require(几乎 uses this code 加载到 json 文件)和这段代码之间的一大区别是 require 使用 Node 的缓存机制,所以多个 require 只会导入文件一次,然后 return 指向已解析的数据,有效地使所有内容共享同一个数据对象。有时这很好,有时这绝对是灾难性的,所以请记住这一点

(如果您绝对需要唯一数据,但又喜欢 require 的便利,您随时可以快速 var data = require("..."); copied = JSON.parse(JSON.stringify(data));