diff --git a/.changeset/pink-dodos-suffer.md b/.changeset/pink-dodos-suffer.md new file mode 100644 index 00000000..000fc35c --- /dev/null +++ b/.changeset/pink-dodos-suffer.md @@ -0,0 +1,8 @@ +--- +"generator-single-spa": major +--- + +- Breaking: Upgrade svelte to v5. Mount and unmount need to be passed to the `singleSpaSvelte` function. +- Breaking: Rollup now outputs using the ESM format rather than the System format. +- Breaking: Set `"type": "module"` in package.json to avoid performance overhead during rollup. +- Replace jest with vitest to simplify test setup. diff --git a/packages/generator-single-spa/src/svelte/generator-single-spa-svelte.js b/packages/generator-single-spa/src/svelte/generator-single-spa-svelte.js index 93d0f62a..2db50af5 100644 --- a/packages/generator-single-spa/src/svelte/generator-single-spa-svelte.js +++ b/packages/generator-single-spa/src/svelte/generator-single-spa-svelte.js @@ -113,13 +113,13 @@ module.exports = class SingleSpaSvelteGenerator extends PnpmGenerator { projectName: this.options.projectName, }); this.fs.copyTpl( - this.templatePath(`jest.config.js`), - this.destinationPath(`jest.config.js`), + this.templatePath(`vite.config.mjs`), + this.destinationPath(`vite.config.mjs`), this.options ); this.fs.copyTpl( - this.templatePath(`babel.config.js`), - this.destinationPath(`babel.config.js`), + this.templatePath(`setupTests.js`), + this.destinationPath(`setupTests.js`), this.options ); this.fs.copyTpl( diff --git a/packages/generator-single-spa/src/svelte/templates/babel.config.js b/packages/generator-single-spa/src/svelte/templates/babel.config.js deleted file mode 100644 index 392abb66..00000000 --- a/packages/generator-single-spa/src/svelte/templates/babel.config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - presets: [ - [ - "@babel/preset-env", - { - targets: { - node: "current", - }, - }, - ], - ], -}; diff --git a/packages/generator-single-spa/src/svelte/templates/jest.config.js b/packages/generator-single-spa/src/svelte/templates/jest.config.js deleted file mode 100644 index 5326bb08..00000000 --- a/packages/generator-single-spa/src/svelte/templates/jest.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - testEnvironment: "jsdom", - transform: { - "^.+\\.svelte$": "svelte-jester", - "^.+\\.js$": "babel-jest", - }, - moduleFileExtensions: ["js", "svelte"], - setupFilesAfterEnv: ["@testing-library/jest-dom"], -}; diff --git a/packages/generator-single-spa/src/svelte/templates/rollup.config.js b/packages/generator-single-spa/src/svelte/templates/rollup.config.js index 57a9d591..dc197cbe 100644 --- a/packages/generator-single-spa/src/svelte/templates/rollup.config.js +++ b/packages/generator-single-spa/src/svelte/templates/rollup.config.js @@ -2,7 +2,8 @@ import svelte from "rollup-plugin-svelte"; import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import livereload from "rollup-plugin-livereload"; -import { terser } from "rollup-plugin-terser"; +import { minify } from "rollup-plugin-esbuild-minify"; +import { spawn } from "child_process"; const production = !process.env.ROLLUP_WATCH; @@ -10,14 +11,16 @@ export default { input: "src/<%= orgName %>-<%= projectName %>.js", output: { sourcemap: true, - format: "system", + format: "esm", name: null, // ensure anonymous System.register file: "dist/<%= orgName %>-<%= projectName %>.js", }, plugins: [ svelte({ - // enable run-time checks when not in production - dev: !production, + compilerOptions: { + // enable run-time checks when not in production + dev: !production, + }, emitCss: false, }), @@ -43,7 +46,7 @@ export default { // If we're building for production (npm run build // instead of npm run dev), minify - production && terser(), + production && minify(), ], watch: { clearScreen: false, @@ -58,7 +61,7 @@ function serve() { if (!started) { started = true; - require("child_process").spawn("npm", ["run", "serve", "--", "--dev"], { + spawn("npm", ["run", "serve", "--", "--dev"], { stdio: ["ignore", "inherit", "inherit"], shell: true, }); diff --git a/packages/generator-single-spa/src/svelte/templates/setupTests.js b/packages/generator-single-spa/src/svelte/templates/setupTests.js new file mode 100644 index 00000000..f149f27a --- /dev/null +++ b/packages/generator-single-spa/src/svelte/templates/setupTests.js @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/packages/generator-single-spa/src/svelte/templates/src/App.svelte b/packages/generator-single-spa/src/svelte/templates/src/App.svelte index 8b58acfb..e334b79f 100644 --- a/packages/generator-single-spa/src/svelte/templates/src/App.svelte +++ b/packages/generator-single-spa/src/svelte/templates/src/App.svelte @@ -1,5 +1,5 @@