# @miyaneee/rollup-plugin-json5




🍣 一个将 .json5 文件转换为 ES6 模块的 rollup 插件。这个插件和官方提供的解析 json 的插件非常相似,除了它的解析器。
**简体中文** | [English](./README.md)
## 环境需求
需要 Node(v8.0.0+) 和 Rollup v1.20.0+。
## 安装
使用 npm 安装:
```bash
npm install @miyaneee/rollup-plugin-json5 -D
```
或者使用 yarn 安装:
```bash
yarn add @miyaneee/rollup-plugin-json5 -D
```
## 使用
创建一个 `rollup.config.js` [配置文件](https://www.rollupjs.com/guide/command-line-reference#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6configuration-files) 并引入插件:
```js
import json5 from '@miyaneee/rollup-plugin-json5'
export default {
input: 'src/index.js',
output: {
dir: 'output',
format: 'cjs'
},
plugins: [json5()]
}
```
接着通过 [命令行](https://www.rollupjs.com/guide/command-line-reference) 或者 [API](https://www.rollupjs.com/guide/javascript-api) 调用 `rollup`。
现在,你可以引入 `.json` 文件了:
```js
import json from 'path/to/json5.json5'
console.log(json)
```
## 选项
### `compact`
类型:`Boolean`
默认值:`false`
如果为 `true`, 会令插件忽视 `indent` 并生成最小的代码。
### `exclude`
类型:`String` | `Array[...String]`
默认值:`null`
一个 [最小匹配表达式](https://github.com/isaacs/minimatch),或者一个表达式数组,它会指定哪些文件会被忽略。默认情况下没有文件会被忽略。
### `include`
类型:`String` | `Array[...String]`
默认值:`null`
一个 [最小匹配表达式](https://github.com/isaacs/minimatch),或者一个表达式数组,它会指定哪些文件会被包括。默认情况下所有文件都会被包括。
### `indent`
类型:`String`
默认值:`'\t'`
为默认导出指定缩进。
### `namedExports`
类型:`Boolean`
默认值:`true`
如果为 `true`,令插件为每个 JSON 对象属性生成命名导出。
### `preferConst`
类型:`Boolean`
默认值:`false`
如果为 `true`,令插件使用 `var` 或者 `const` 将属性定义为变量。与摇树优化相关。
### `includeArbitraryNames`
类型:`Boolean`
默认值:`false`
如果本选项设为 `true` 并且 `namedExports` 也被设为 `true`,那么就会利用[“任意模块命名空间标识符名称”特性](https://github.com/tc39/ecma262/pull/2154),为 JSON 对象中非有效标识符属性生成一个命名导出。
### `reviver`
类型:`((this: any, key: string, value: any) => any) | null`
查看 [JSON5.parse()](https://github.com/json5/json5#json5parse)。
## 许可证
MIT