0

我需要在不使用另一个 NPM 包的情况下向我的 JSON 添加注释,所以我想添加module.exports =到我的 JSON 文件的开头,以便它成为我可以在完全相同的情况下使用的 CommonJS 模块(带有普通 JS 对象)方式。这样做时我需要知道哪些权衡?

4

1 回答 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 回答