问题描述
我需要在不使用另一个NPM包的情况下向我的JSON添加注释,所以我有个主意,将module.exports =
添加到我的JSON文件的开头,以便它成为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
文件扩展名。