我需要在不使用另一个 NPM 包的情况下向我的 JSON 添加注释,所以我想添加module.exports =到我的 JSON 文件的开头,以便它成为我可以在完全相同的情况下使用的 CommonJS 模块(带有普通 JS 对象)方式。这样做时我需要知道哪些权衡?
1 回答
2
你当然可以这样做:
const data = require('myfile.json');
文件中有 JSON 数据:
{"someProp": "someValue"}
或者,您可以这样做:
const data = require('mfile.js');
在文件中有这个:
module.exports = {"someProp": "someValue"};
一个是模块文件。一种是 JSON 文件。这实际上仅取决于您希望它是什么,或者该文件的任何其他客户端是否期望它是一种或另一种方式。尽管 CommonJS 模块可以包含更多类型的数据、评论等,但无论哪种方式都没有特定的优点或缺点……因为 JSON 对其中可能包含的内容非常严格。如果您遵循适当的格式规则,两者都适用于核心数据。
如果您想将 Javascript 注释添加到数据中,那么您无法在 JSON 中执行此操作,因此您需要将其设为模块并且这样做没有特定的缺点。
注意,为了require()自动解析 JSON,它必须有一个.json文件扩展名。要将其解析为 Javascript CommonJS 模块,它必须没有.json文件扩展名。
于 2020-09-20T02:30:31.573 回答