Skip to the content.

@miyaneee/rollup-plugin-json5

npm npm type definitions npm bundle size GitHub

🍣 A Rollup plugin which Converts .json5 files to ES6 modules. This plugin is very similar to json plugin officially provided beside the parser.

简体中文 English

Requirements

This plugin requires an LTS Node version (v8.0.0+) and Rollup v1.20.0+.

Install

Using npm:

npm install @miyaneee/rollup-plugin-json5 -D

Or use yarn:

yarn add @miyaneee/rollup-plugin-json5 -D

Usage

Create a rollup.config.js configuration file and import the plugin:

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 or the API.

Now .json5 file will be importable:

import json from 'path/to/json5.json5'
console.log(json)

Options

compact

Type: Boolean
Default: false

If true, instructs the plugin to ignore indent and generates the smallest code.

exclude

Type: String | Array[...String]
Default: null

A minimatch pattern, 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]
Default: null

A minimatch pattern, 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
Default: '\t'

Specifies the indentation for the generated default export.

namedExports

Type: Boolean
Default: true

If true, instructs the plugin to generate a named export for every property of the JSON object.

preferConst

Type: Boolean
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
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.

reviver

Type: ((this: any, key: string, value: any) => any) | null

See JSON5.parse().

LICENSE

MIT