116 lines
3.1 KiB
Markdown
116 lines
3.1 KiB
Markdown
# @miyaneee/rollup-plugin-json5
|
|
|
|

|
|

|
|

|
|

|
|
|
|
🍣 A Rollup plugin which Converts .json5 files to ES6 modules. This plugin is very similar to json plugin officially provided beside the parser.
|
|
|
|
[简体中文](./README_zh.md) | **English**
|
|
|
|
## Requirements
|
|
|
|
This plugin requires an [LTS](https://github.com/nodejs/Release) Node version (v8.0.0+) and Rollup v1.20.0+.
|
|
|
|
## Install
|
|
|
|
Using npm:
|
|
|
|
```bash
|
|
npm install @miyaneee/rollup-plugin-json5 -D
|
|
```
|
|
|
|
Or use yarn:
|
|
|
|
```bash
|
|
yarn add @miyaneee/rollup-plugin-json5 -D
|
|
```
|
|
|
|
## Usage
|
|
|
|
Create a `rollup.config.js` [configuration file](https://www.rollupjs.org/guide/en/#configuration-files) and import the plugin:
|
|
|
|
```js
|
|
import json5 from '@miyaneee/rollup-plugin-json5'
|
|
|
|
export default {
|
|
input: 'src/index.js',
|
|
output: {
|
|
dir: 'output',
|
|
format: 'cjs'
|
|
},
|
|
plugins: [json5()]
|
|
}
|
|
```
|
|
|
|
Then call `rollup` either via the [CLI](https://www.rollupjs.org/guide/en/#command-line-reference) or the [API](https://www.rollupjs.org/guide/en/#javascript-api).
|
|
|
|
Now `.json5` file will be importable:
|
|
|
|
```js
|
|
import json from 'path/to/json5.json5'
|
|
console.log(json)
|
|
```
|
|
|
|
## Options
|
|
|
|
### `compact`
|
|
|
|
Type: `Boolean`<br>
|
|
Default: `false`
|
|
|
|
If `true`, instructs the plugin to ignore `indent` and generates the smallest code.
|
|
|
|
### `exclude`
|
|
|
|
Type: `String` | `Array[...String]`<br>
|
|
Default: `null`
|
|
|
|
A [minimatch pattern](https://github.com/isaacs/minimatch), or array of patterns, which specifies the files in the build the plugin should _ignore_. By default no files are ignored.
|
|
|
|
### `include`
|
|
|
|
Type: `String` | `Array[...String]`<br>
|
|
Default: `null`
|
|
|
|
A [minimatch pattern](https://github.com/isaacs/minimatch), or array of patterns, which specifies the files in the build the plugin should operate on. By default all files are targeted.
|
|
|
|
### `indent`
|
|
|
|
Type: `String`<br>
|
|
Default: `'\t'`
|
|
|
|
Specifies the indentation for the generated default export.
|
|
|
|
### `namedExports`
|
|
|
|
Type: `Boolean`<br>
|
|
Default: `true`
|
|
|
|
If `true`, instructs the plugin to generate a named export for every property of the JSON object.
|
|
|
|
### `preferConst`
|
|
|
|
Type: `Boolean`<br>
|
|
Default: `false`
|
|
|
|
If `true`, instructs the plugin to declare properties as variables, using either `var` or `const`. This pertains to tree-shaking.
|
|
|
|
### `includeArbitraryNames`
|
|
|
|
Type: `Boolean`<br>
|
|
Default: `false`
|
|
|
|
If `true` and `namedExports` is `true`, generates a named export for not a valid identifier properties of the JSON object by leveraging the ["Arbitrary Module Namespace Identifier Names" feature](https://github.com/tc39/ecma262/pull/2154).
|
|
|
|
### `reviver`
|
|
|
|
Type: `((this: any, key: string, value: any) => any) | null`
|
|
|
|
See [JSON5.parse()](https://github.com/json5/json5#json5parse).
|
|
|
|
## LICENSE
|
|
|
|
MIT
|