JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8492
  • Score
    100M100P100Q133388F
  • License Apache-2.0

Plugin for allowing .json5 and .jsonc files to be loaded.

Package Exports

  • vite-plugin-json5
  • vite-plugin-json5/dist/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 (vite-plugin-json5) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🔌 Vite JSON5 (and JSONC) plugin

Plugin for allowing .json5 and .jsonc files to be loaded.

[!NOTE] This plugin is merely just a wrapper using the json5 package. So all the credits for the parsing goes out to the collaborators of that repository! I just made a plugin that allows files to be parsed using their package.

📛 Badges

npm npm GitHub Workflow Status License GitHub Repo stars

📦 Installation in 3 easy steps:

1. Install the package into to your project

# PNPM:
pnpm add -D vite-plugin-json5

# Yarn:
yarn add -D vite-plugin-json5

# NPM:
npm install -D vite-plugin-json5

2. Add it to your vite config

// vite.config.js

import json5Plugin from 'vite-plugin-json5'
// or
import { json5Plugin } from 'vite-plugin-json5'

export default defineConfig({
  json5Plugin()
})

3. That's it 🎉

You are now able to import files with the .jsonc and .json5 extensions! These will be parsed by the json5 package and turned into a regular js that the app will be able to read and not get confused by.

Options ⚙️

This plugin accepts the same options as the default JSON parser:

interface Json5Options {
    /**
     * Generate a named export for every property of the JSON object
     * @default true
     */
    namedExports?: boolean;
    /**
     * Generate performant output as JSON.parse("stringified").
     * Enabling this will disable namedExports.
     * @default false
     */
    stringify?: boolean;
}

Contributing 🏗️

A guide for setting up the development environment to allow for easy contributions.

  1. Install dependencies:

    $ pnpm install
  2. Make changes

  3. Run tests

    $ pnpm test
  4. Build when successful

    $ pnpm build
  5. Run the playground to test the build

    $ pnpm dev

Extra 🍕

The reason why I created the plugin is because I would like to be able to write comments in my JSON lang files to give more context about the translations. The problem was, when I imported a .json5 or .jsonc file it threw errors about needing a custom plugin for these types of files. I couldn't find one yet so... here it is!