https://github.com/duzun/require-json5
Require JSON5 files in node - a better JSON for ES5 era
https://github.com/duzun/require-json5
Last synced: 5 months ago
JSON representation
Require JSON5 files in node - a better JSON for ES5 era
- Host: GitHub
- URL: https://github.com/duzun/require-json5
- Owner: duzun
- License: mit
- Created: 2016-03-08T10:13:12.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-06-13T19:51:03.000Z (over 3 years ago)
- Last Synced: 2025-04-15T11:46:40.828Z (6 months ago)
- Language: JavaScript
- Size: 13.7 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# require-json5 [](https://app.travis-ci.com/duzun/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
```sh
npm i -S require-json5
```## Usage
Include the lib:
```js
const requireJSON5 = require('require-json5');
```1) Require a JSON5 file
```js
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");
```2) Explicitly load a `.json` file in JSON5 format
```js
let config = requireJSON5("./config.json");
```3) 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.```js
let config = requireJSON5("./config.js");
```3) Parse a JSON5 string
```js
let config = requireJSON5.parse('{ name: /*a very important option*/ "value" }');
```4) Use JSON5 for all `require(.json)` calls
```js
require('require-json5').replace();
let config = require("./config"); // can be config.json, config.json5 or config.js
```5) Restore the original `require(.json)`
```js
require('require-json5').restore();
```## Example of JSON5
The following is a contrived example, but it illustrates most of the features:
```js
{
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](https://www.npmjs.com/package/json5) library.