feat!: move to esm and drop support for vue 2.6

This commit is contained in:
Justineo
2024-06-29 00:31:57 +08:00
committed by GU Yiling
parent 861674352b
commit 27c79b9012
20 changed files with 866 additions and 728 deletions

View File

@ -1,9 +1,8 @@
import typescript from "rollup-plugin-ts";
import terser from "@rollup/plugin-terser";
import resolve from "@rollup/plugin-node-resolve";
import replace from "@rollup/plugin-replace";
import styles from "rollup-plugin-styles";
import { injectVueDemi } from "./scripts/rollup";
import esbuild from "rollup-plugin-esbuild";
import { dts } from "rollup-plugin-dts";
import css from "rollup-plugin-import-css";
import { ignoreCss } from "./scripts/rollup.mjs";
/**
* Modifies the Rollup options for a build to support strict CSP
@ -18,7 +17,7 @@ function configBuild(options, csp) {
result.plugins = [
...(csp ? [replace({ __CSP__: `${csp}`, preventAssignment: true })] : []),
...plugins,
csp ? styles({ mode: ["extract", "style.css"] }) : styles()
csp ? css({ output: "style.css" }) : css({ inject: true })
];
// modify output file names
@ -39,97 +38,31 @@ function configBuild(options, csp) {
const builds = [
{
input: "src/index.ts",
plugins: [
typescript({
tsconfig: resolvedConfig => ({ ...resolvedConfig, declaration: true }),
hook: {
outputPath: (path, kind) =>
kind === "declaration" ? "dist/index.d.ts" : path
}
})
],
external: ["vue-demi", "echarts/core", "resize-detector"],
output: {
file: "dist/index.esm.js",
format: "esm",
sourcemap: true
}
},
{
input: "src/index.ts",
plugins: [typescript()],
external: ["vue-demi", "echarts/core", "resize-detector"],
plugins: [esbuild()],
external: ["vue-demi", /^echarts/],
output: [
{
file: "dist/index.esm.min.js",
file: "dist/index.js",
format: "esm",
sourcemap: true,
plugins: [
terser({
format: {
comments: false
}
})
]
},
{
file: "dist/index.cjs.js",
format: "cjs",
exports: "named",
sourcemap: true
},
{
file: "dist/index.cjs.min.js",
file: "dist/index.cjs",
format: "cjs",
exports: "named",
sourcemap: true,
plugins: [
terser({
format: {
comments: false
}
})
]
sourcemap: true
}
]
},
{
input: "src/global.ts",
plugins: [resolve(), typescript()],
external: ["vue-demi", "echarts", "echarts/core"],
input: "src/index.ts",
plugins: [esbuild({ minify: true })],
external: ["vue-demi", /^echarts/],
output: [
{
file: "dist/index.umd.js",
format: "umd",
name: "VueECharts",
exports: "default",
sourcemap: true,
globals: {
"vue-demi": "VueDemi",
echarts: "echarts",
"echarts/core": "echarts"
},
plugins: [injectVueDemi]
},
{
file: "dist/index.umd.min.js",
format: "umd",
name: "VueECharts",
exports: "default",
sourcemap: true,
globals: {
"vue-demi": "VueDemi",
echarts: "echarts",
"echarts/core": "echarts"
},
plugins: [
injectVueDemi,
terser({
format: {
comments: false
}
})
]
file: "dist/index.min.js", // for unpkg/jsdelivr
format: "esm",
sourcemap: true
}
]
}
@ -137,5 +70,22 @@ const builds = [
export default [
...builds.map(options => configBuild(options, false)),
...builds.map(options => configBuild(options, true))
...builds.map(options => configBuild(options, true)),
{
input: "src/index.ts",
plugins: [
ignoreCss,
dts({
compilerOptions: {
// see https://github.com/unjs/unbuild/pull/57/files
preserveSymlinks: false
}
})
],
external: ["vue-demi", /^echarts/],
output: {
file: "dist/index.vue3.d.ts",
format: "esm"
}
}
];