Package Exports
- require-json5
- require-json5/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (require-json5) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
require-json5 
Require JSON5 files in node - a better JSON for the JSNext era
JSON5 is more human friendly, can contain comments, trailing commas, unquoted keys and more!
Install
npm i -S require-json5
Usage
Include the lib:
const requireJSON5 = require('require-json5');
- Require a JSON5 file
let config = require("./config.json5");
// or w/o the extension, when "./config.json5" exists and there is no "./config.json", nor "./config.js"
let config = require("./config");
- Explicitly load a
.json
file in JSON5 format
let config = requireJSON5("./config.json");
- Load a .js file as JSON5 format.
This is useful if you don't like the
.json5
file extension and prefer to keep JSON5 in.js
files.
let config = requireJSON5("./config.js");
- Parse a JSON5 string
let config = requireJSON5.parse('{ name: /*a very important option*/ "value" }');
- Use JSON5 for all
require(.json)
calls
require('require-json5').replace();
let config = require("./config"); // can be config.json, config.json5 or config.js
- Restore the original
require(.json)
require('require-json5').restore();
Example of JSON5
The following is a contrived example, but it illustrates most of the features:
{
foo: 'bar',
while: true,
this: 'is a \
multi-line string',
// this is an inline comment
here: 'is another', // inline comment
/* this is a block comment
that continues on another line */
hex: 0xDEADbeef,
half: .5,
delta: +10,
to: Infinity, // and beyond!
finally: 'a trailing comma',
oh: [
"we shouldn't forget",
'arrays can have',
'trailing commas too',
],
}
For more details on the JSON5
format see the json5 library.