Replace @rollup/plugin-json with esbuild's json loader

This commit is contained in:
bjoluc 2022-11-21 09:30:02 +01:00
parent 1375339f63
commit 6d0689decb
3 changed files with 19 additions and 29 deletions

20
package-lock.json generated
View File

@ -3169,25 +3169,6 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/@rollup/plugin-json": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz",
"integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==",
"dependencies": {
"@rollup/pluginutils": "^5.0.1"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0||^3.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-node-resolve": { "node_modules/@rollup/plugin-node-resolve": {
"version": "15.0.1", "version": "15.0.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz",
@ -17369,7 +17350,6 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@rollup/plugin-commonjs": "23.0.2", "@rollup/plugin-commonjs": "23.0.2",
"@rollup/plugin-json": "5.0.1",
"@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-node-resolve": "15.0.1",
"@sucrase/jest-plugin": "3.0.0", "@sucrase/jest-plugin": "3.0.0",
"@types/gulp": "4.0.10", "@types/gulp": "4.0.10",

View File

@ -37,7 +37,6 @@
"homepage": "https://www.jspsych.org/latest/developers/configuration", "homepage": "https://www.jspsych.org/latest/developers/configuration",
"dependencies": { "dependencies": {
"@rollup/plugin-commonjs": "23.0.2", "@rollup/plugin-commonjs": "23.0.2",
"@rollup/plugin-json": "5.0.1",
"@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-node-resolve": "15.0.1",
"@sucrase/jest-plugin": "3.0.0", "@sucrase/jest-plugin": "3.0.0",
"@types/gulp": "4.0.10", "@types/gulp": "4.0.10",

View File

@ -2,7 +2,6 @@ import { readFileSync } from "fs";
import path from "path"; import path from "path";
import commonjs from "@rollup/plugin-commonjs"; import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import resolve from "@rollup/plugin-node-resolve"; import resolve from "@rollup/plugin-node-resolve";
import { defineConfig } from "rollup"; import { defineConfig } from "rollup";
import dts from "rollup-plugin-dts"; import dts from "rollup-plugin-dts";
@ -39,6 +38,16 @@ const makeConfig = ({
...outputOptions, ...outputOptions,
}; };
/** @type{import("rollup-plugin-esbuild").Options} */
const esBuildPluginOptions = {
loaders: { ".json": "json" },
};
/** @type{import("@rollup/plugin-commonjs").RollupCommonJSOptions} */
const commonjsPluginOptions = {
extensions: [".js", ".json"],
};
// Non-babel builds // Non-babel builds
const config = defineConfig([ const config = defineConfig([
// Type definitions (bundled as a single .d.ts file) // Type definitions (bundled as a single .d.ts file)
@ -60,7 +69,11 @@ const makeConfig = ({
{ {
...globalOptions, ...globalOptions,
input, input,
plugins: [externals(), json(), esbuild({ target: "node14" }), commonjs()], plugins: [
externals(),
esbuild({ ...esBuildPluginOptions, target: "node18" }),
commonjs(commonjsPluginOptions),
],
output: [ output: [
{ file: `${destination}.js`, format: "esm", ...outputOptions }, { file: `${destination}.js`, format: "esm", ...outputOptions },
{ file: `${destination}.cjs`, format: "cjs", ...outputOptions }, { file: `${destination}.cjs`, format: "cjs", ...outputOptions },
@ -84,9 +97,8 @@ const makeConfig = ({
plugins: [ plugins: [
externals({ deps: false }), externals({ deps: false }),
resolve({ preferBuiltins: false }), resolve({ preferBuiltins: false }),
json(), esbuild({ ...esBuildPluginOptions, target: "esnext" }),
esbuild({ target: "esnext" }), commonjs(commonjsPluginOptions),
commonjs(),
], ],
output: { output: {
file: `${destination}.browser.js`, file: `${destination}.browser.js`,
@ -104,9 +116,8 @@ const makeConfig = ({
plugins: [ plugins: [
externals({ deps: false }), externals({ deps: false }),
resolve({ preferBuiltins: false }), resolve({ preferBuiltins: false }),
json(), esbuild({ ...esBuildPluginOptions, target: "es2015", minify: true }),
esbuild({ target: "es2015", minify: true }), commonjs(commonjsPluginOptions),
commonjs(),
], ],
output: { output: {
file: `${destination}.browser.min.js`, file: `${destination}.browser.min.js`,