diff --git a/frontend/.storybook/vitest.setup.ts b/frontend/.storybook/vitest.setup.ts
deleted file mode 100644
index f914b38bef..0000000000
--- a/frontend/.storybook/vitest.setup.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { setProjectAnnotations } from '@storybook/react-vite';
-import * as projectAnnotations from './preview';
-
-// This is an important step to apply the right configuration when testing your stories.
-// More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
-setProjectAnnotations([projectAnnotations]);
\ No newline at end of file
diff --git a/frontend/vite.config.js b/frontend/vite.config.js
index 734fd8e946..95f89b8594 100644
--- a/frontend/vite.config.js
+++ b/frontend/vite.config.js
@@ -7,12 +7,8 @@ import { playwright } from '@vitest/browser-playwright'
// https://vitejs.dev/config/
import path from "node:path";
-import { fileURLToPath } from "node:url";
import { storybookTest } from "@storybook/addon-vitest/vitest-plugin";
-const dirname =
- typeof __dirname !== "undefined"
- ? __dirname
- : path.dirname(fileURLToPath(import.meta.url));
+const dirname = import.meta.dirname;
// More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon
export default defineConfig({
@@ -45,15 +41,14 @@ export default defineConfig({
{browser: "chromium"},
],
},
- setupFiles: [".storybook/vitest.setup.ts"],
},
},
],
},
resolve: {
alias: {
- "@target": resolve(__dirname, "./target/storybook"),
- "@public": resolve(__dirname, "./resources/public/js/"),
+ "@target": resolve(dirname, "./target/storybook"),
+ "@public": resolve(dirname, "./resources/public/js/"),
},
},
});
diff --git a/plugins/apps/colors-to-tokens-plugin/vite.config.ts b/plugins/apps/colors-to-tokens-plugin/vite.config.ts
index ce57d28043..4f9cb48c23 100644
--- a/plugins/apps/colors-to-tokens-plugin/vite.config.ts
+++ b/plugins/apps/colors-to-tokens-plugin/vite.config.ts
@@ -2,7 +2,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
test: {
watch: false,
globals: true,
diff --git a/plugins/apps/contrast-plugin/vite.config.ts b/plugins/apps/contrast-plugin/vite.config.ts
index 5b4538a2e6..afa64b0c84 100644
--- a/plugins/apps/contrast-plugin/vite.config.ts
+++ b/plugins/apps/contrast-plugin/vite.config.ts
@@ -2,7 +2,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
test: {
globals: true,
environment: 'jsdom',
diff --git a/plugins/apps/create-palette-plugin/vite.config.ts b/plugins/apps/create-palette-plugin/vite.config.ts
index f8b241a643..b82adfd3c6 100644
--- a/plugins/apps/create-palette-plugin/vite.config.ts
+++ b/plugins/apps/create-palette-plugin/vite.config.ts
@@ -1,7 +1,7 @@
///
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
server: {
port: 4202,
host: '0.0.0.0',
diff --git a/plugins/apps/e2e/vite.config.ts b/plugins/apps/e2e/vite.config.ts
index ae60487c66..12a797acb0 100644
--- a/plugins/apps/e2e/vite.config.ts
+++ b/plugins/apps/e2e/vite.config.ts
@@ -2,7 +2,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
test: {
testTimeout: 20000,
watch: false,
diff --git a/plugins/apps/example-styles/vite.config.ts b/plugins/apps/example-styles/vite.config.ts
index 39a4e556da..43d5819170 100644
--- a/plugins/apps/example-styles/vite.config.ts
+++ b/plugins/apps/example-styles/vite.config.ts
@@ -1,7 +1,7 @@
///
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
server: {
port: 4202,
host: '0.0.0.0',
diff --git a/plugins/apps/lorem-ipsum-plugin/vite.config.ts b/plugins/apps/lorem-ipsum-plugin/vite.config.ts
index 92c2628f69..a26b77cba6 100644
--- a/plugins/apps/lorem-ipsum-plugin/vite.config.ts
+++ b/plugins/apps/lorem-ipsum-plugin/vite.config.ts
@@ -2,7 +2,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
test: {
watch: false,
globals: true,
diff --git a/plugins/apps/plugin-api-test-suite/tsconfig.node.json b/plugins/apps/plugin-api-test-suite/tsconfig.node.json
index 15543271a6..0314a479cf 100644
--- a/plugins/apps/plugin-api-test-suite/tsconfig.node.json
+++ b/plugins/apps/plugin-api-test-suite/tsconfig.node.json
@@ -4,6 +4,7 @@
"outDir": "../../dist/out-tsc",
"module": "ESNext",
"moduleResolution": "Bundler",
+ "allowImportingTsExtensions": true,
"types": ["node"],
"noUnusedLocals": true,
"noUnusedParameters": true
diff --git a/plugins/apps/plugin-api-test-suite/vite.config.headless.ts b/plugins/apps/plugin-api-test-suite/vite.config.headless.ts
index c2fad314f5..706f1f43d5 100644
--- a/plugins/apps/plugin-api-test-suite/vite.config.headless.ts
+++ b/plugins/apps/plugin-api-test-suite/vite.config.headless.ts
@@ -1,4 +1,4 @@
-import { iifeConfig } from './vite.config.iife';
+import { iifeConfig } from './vite.config.iife.ts';
// Builds the CI test entry as a single self-executing (IIFE) bundle, evaluated
// inside the Penpot plugin sandbox via `globalThis.ɵloadPlugin({ code })` by the
diff --git a/plugins/apps/plugin-api-test-suite/vite.config.iife.ts b/plugins/apps/plugin-api-test-suite/vite.config.iife.ts
index b2ee8a2985..130db9dd37 100644
--- a/plugins/apps/plugin-api-test-suite/vite.config.iife.ts
+++ b/plugins/apps/plugin-api-test-suite/vite.config.iife.ts
@@ -12,7 +12,7 @@ import { defineConfig, type UserConfig } from 'vite';
*/
export function iifeConfig(name: string, entry: string): UserConfig {
return defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
resolve: {
tsconfigPaths: true,
},
diff --git a/plugins/apps/plugin-api-test-suite/vite.config.tests.ts b/plugins/apps/plugin-api-test-suite/vite.config.tests.ts
index 39468d5209..dbf4d20114 100644
--- a/plugins/apps/plugin-api-test-suite/vite.config.tests.ts
+++ b/plugins/apps/plugin-api-test-suite/vite.config.tests.ts
@@ -1,4 +1,4 @@
-import { iifeConfig } from './vite.config.iife';
+import { iifeConfig } from './vite.config.iife.ts';
// Builds the test cases as a single self-executing (IIFE) bundle that publishes
// the discovered tests on `globalThis.__penpotReloadedTests`. The UI "Reload"
diff --git a/plugins/apps/plugin-api-test-suite/vite.config.ts b/plugins/apps/plugin-api-test-suite/vite.config.ts
index 25c811f49e..00e01630ff 100644
--- a/plugins/apps/plugin-api-test-suite/vite.config.ts
+++ b/plugins/apps/plugin-api-test-suite/vite.config.ts
@@ -2,7 +2,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
// Emit relative asset URLs in index.html so the built plugin works when served
// from a subdirectory (Penpot serves the bundled plugins under `/plugins/...`).
// Vite resolves `./` to `/` for the dev server, so `pnpm run dev` is unaffected.
diff --git a/plugins/apps/poc-tokens-plugin/vite.config.ts b/plugins/apps/poc-tokens-plugin/vite.config.ts
index 80619b371f..0f62223ab9 100644
--- a/plugins/apps/poc-tokens-plugin/vite.config.ts
+++ b/plugins/apps/poc-tokens-plugin/vite.config.ts
@@ -2,7 +2,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
test: {
watch: false,
globals: true,
diff --git a/plugins/libs/plugins-runtime/vite.config.ts b/plugins/libs/plugins-runtime/vite.config.ts
index 14f8d61d18..a054f46cb1 100644
--- a/plugins/libs/plugins-runtime/vite.config.ts
+++ b/plugins/libs/plugins-runtime/vite.config.ts
@@ -7,7 +7,7 @@ import * as path from 'path';
import checker from 'vite-plugin-checker';
export default defineConfig({
- root: __dirname,
+ root: import.meta.dirname,
cacheDir: '../node_modules/.vite/plugins-runtime',
resolve: {
@@ -17,7 +17,7 @@ export default defineConfig({
plugins: [
dts({
entryRoot: 'src',
- tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'),
+ tsconfigPath: path.join(import.meta.dirname, 'tsconfig.lib.json'),
}),
checker({
typescript: {