Since the migration to Vite 5 we had the "The CJS build of Vite's Node API is deprecated" error ocurring during compilation. We needed to rename to .mts the vite config file in order for it to acknowledge that we are using the Node ESM API, this is needed because we do not set "type": "module" in package.json because we need to support CJS too.
90 lines
1.9 KiB
TypeScript
90 lines
1.9 KiB
TypeScript
import { resolve } from "path";
|
|
import { defineConfig, BuildOptions } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import dts from "vite-plugin-dts";
|
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig(({ mode }) => {
|
|
let buildOptions: { watch: BuildOptions["watch"] };
|
|
let emptyOutDir = true;
|
|
if (mode.includes("watch")) {
|
|
emptyOutDir = false;
|
|
buildOptions = {
|
|
watch: {
|
|
include: ["src/**/*"],
|
|
},
|
|
};
|
|
|
|
if (mode.includes("polling")) {
|
|
buildOptions = {
|
|
watch: {
|
|
...buildOptions.watch,
|
|
chokidar: {
|
|
usePolling: true,
|
|
interval: 1000,
|
|
},
|
|
},
|
|
};
|
|
}
|
|
}
|
|
|
|
return {
|
|
build: {
|
|
emptyOutDir,
|
|
outDir: "dist",
|
|
sourcemap: true,
|
|
lib: {
|
|
entry: {
|
|
index: "./src/index.ts",
|
|
},
|
|
formats: ["es", "cjs"],
|
|
},
|
|
rollupOptions: {
|
|
external: ["react", "react-dom"],
|
|
output: {
|
|
globals: {
|
|
react: "React",
|
|
"react-dom": "ReactDOM",
|
|
},
|
|
},
|
|
},
|
|
...buildOptions,
|
|
},
|
|
plugins: [
|
|
tsconfigPaths(),
|
|
dts({
|
|
rollupTypes: true,
|
|
beforeWriteFile: (filePath, content) => {
|
|
return {
|
|
filePath,
|
|
content: content.replace("../../locales", "./locales"),
|
|
};
|
|
},
|
|
}),
|
|
react(),
|
|
],
|
|
test: {
|
|
environment: "jsdom",
|
|
reporters: "verbose",
|
|
globals: true,
|
|
watchExclude: ["**/cunningham-tokens.js"],
|
|
coverage: {
|
|
all: true,
|
|
include: ["src/**/*.{ts,tsx}"],
|
|
exclude: ["**/*.stories.tsx", "**/*.spec.tsx"],
|
|
},
|
|
globalSetup: ["src/tests/Global.ts"],
|
|
setupFiles: ["src/tests/Setup.ts"],
|
|
},
|
|
resolve: {
|
|
alias: [
|
|
{
|
|
find: ":",
|
|
replacement: resolve(__dirname, "./src"),
|
|
},
|
|
],
|
|
},
|
|
};
|
|
});
|