CommonJS vs JSON?



我需要在不使用另一个NPM包的情况下向JSON添加注释,所以我想在JSON文件的开头添加module.exports =,这样它就成为了一个CommonJS模块(带有一个普通的JS对象(,我可以用完全相同的方式使用它。在做这件事的时候,我需要知道有什么取舍吗?

您当然可以这样做:

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文件扩展名。

最新更新