nodejs是否支持不带.json扩展名的json文件的“require”

在节点5.0中有一个语法require ,它可以将文件识别为没有.json扩展名的json?

例如,我想能够阅读.bowerrc文件(一个json文件)与这样的require语句。

var bowerrc = require("./.bowerrc");

但节点抛出一个令牌错误,因为它认为它的JavaScript而不是一个JSON文件。

如果我暂时将.bowerrc改为.bowerrc.json(和文件名),那么一切都好,所以我知道这是发生了什么事情。

我发现浏览器中有一个requirejs插件,它支持json!nameofile但在node中不起作用。

不,如果require()没有正确的文件扩展名,就没有办法使它成为JSON。

相反,你只需要读取文件并自己parsing。

以下是node.js文档中的相关部分:

.js文件被解释为JavaScript文本文件,.json文件被parsing为JSON文本文件。 .node文件被解释为用dlopen加载的编译插件模块。

LOAD_AS_FILE(X)

  1. 如果X是一个文件,请将JavaScript加载为JavaScript文本。 停
  2. 如果X.js是一个文件,加载X.js作为JavaScript文本。 停
  3. 如果X.json是一个文件,则将X.jsonparsing为JavaScript对象。 停
  4. 如果X.node是一个文件,加载X.node作为二进制插件。 停

您可以制作自己的JSON加载器:

 function loadJSON(file) { var data = fs.readFileSync(file); return JSON.parse(data); }