Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/nasty-heads-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@qwik.dev/router': major
'@qwik.dev/core': major
---

BREAKING: Qwik and Qwik Router no longer provide .cjs builds. The tooling ecosystem can now handle ESM modules well.
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ The most important files of a library are a properly configured `package.json` a
"exports": {
".": {
"import": "./lib/index.qwik.mjs",
"require": "./lib/index.qwik.cjs",
"types": "./lib-types/index.d.ts"
}
},
Expand Down Expand Up @@ -102,8 +101,8 @@ export default defineConfig(() => {
target: 'es2020',
lib: {
entry: './src/index.ts',
formats: ['es', 'cjs'],
fileName: (format) => `index.qwik.${format === 'es' ? 'mjs' : 'cjs'}`,
formats: ['es'],
fileName: 'index.qwik.mjs',
},
},
plugins: [qwikVite()],
Expand Down
54 changes: 18 additions & 36 deletions packages/qwik-router/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,63 +48,51 @@
"exports": {
".": {
"types": "./lib/index.d.ts",
"import": "./lib/index.qwik.mjs",
"require": "./lib/index.qwik.cjs"
"import": "./lib/index.qwik.mjs"
},
"./adapters/azure-swa/vite": {
"types": "./lib/adapters/azure-swa/vite/index.d.ts",
"import": "./lib/adapters/azure-swa/vite/index.mjs",
"require": "./lib/adapters/azure-swa/vite/index.cjs"
"import": "./lib/adapters/azure-swa/vite/index.mjs"
},
"./adapters/cloudflare-pages/vite": {
"types": "./lib/adapters/cloudflare-pages/vite/index.d.ts",
"import": "./lib/adapters/cloudflare-pages/vite/index.mjs",
"require": "./lib/adapters/cloudflare-pages/vite/index.cjs"
"import": "./lib/adapters/cloudflare-pages/vite/index.mjs"
},
"./adapters/cloud-run/vite": {
"types": "./lib/adapters/cloud-run/vite/index.d.ts",
"import": "./lib/adapters/cloud-run/vite/index.mjs",
"require": "./lib/adapters/cloud-run/vite/index.cjs"
"import": "./lib/adapters/cloud-run/vite/index.mjs"
},
"./adapters/bun-server/vite": {
"types": "./lib/adapters/bun-server/vite/index.d.ts",
"import": "./lib/adapters/bun-server/vite/index.mjs",
"require": "./lib/adapters/bun-server/vite/index.cjs"
"import": "./lib/adapters/bun-server/vite/index.mjs"
},
"./adapters/deno-server/vite": {
"types": "./lib/adapters/deno-server/vite/index.d.ts",
"import": "./lib/adapters/deno-server/vite/index.mjs",
"require": "./lib/adapters/deno-server/vite/index.cjs"
"import": "./lib/adapters/deno-server/vite/index.mjs"
},
"./adapters/node-server/vite": {
"types": "./lib/adapters/node-server/vite/index.d.ts",
"import": "./lib/adapters/node-server/vite/index.mjs",
"require": "./lib/adapters/node-server/vite/index.cjs"
"import": "./lib/adapters/node-server/vite/index.mjs"
},
"./adapters/netlify-edge/vite": {
"types": "./lib/adapters/netlify-edge/vite/index.d.ts",
"import": "./lib/adapters/netlify-edge/vite/index.mjs",
"require": "./lib/adapters/netlify-edge/vite/index.cjs"
"import": "./lib/adapters/netlify-edge/vite/index.mjs"
},
"./adapters/shared/vite": {
"types": "./lib/adapters/shared/vite/index.d.ts",
"import": "./lib/adapters/shared/vite/index.mjs",
"require": "./lib/adapters/shared/vite/index.cjs"
"import": "./lib/adapters/shared/vite/index.mjs"
},
"./adapters/static/vite": {
"types": "./lib/adapters/ssg/vite/index.d.ts",
"import": "./lib/adapters/ssg/vite/index.mjs",
"require": "./lib/adapters/ssg/vite/index.cjs"
"import": "./lib/adapters/ssg/vite/index.mjs"
},
"./adapters/ssg/vite": {
"types": "./lib/adapters/ssg/vite/index.d.ts",
"import": "./lib/adapters/ssg/vite/index.mjs",
"require": "./lib/adapters/ssg/vite/index.cjs"
"import": "./lib/adapters/ssg/vite/index.mjs"
},
"./adapters/vercel-edge/vite": {
"types": "./lib/adapters/vercel-edge/vite/index.d.ts",
"import": "./lib/adapters/vercel-edge/vite/index.mjs",
"require": "./lib/adapters/vercel-edge/vite/index.cjs"
"import": "./lib/adapters/vercel-edge/vite/index.mjs"
},
"./middleware/azure-swa": {
"types": "./lib/middleware/azure-swa/index.d.ts",
Expand Down Expand Up @@ -136,37 +124,31 @@
},
"./middleware/node": {
"types": "./lib/middleware/node/index.d.ts",
"import": "./lib/middleware/node/index.mjs",
"require": "./lib/middleware/node/index.cjs"
"import": "./lib/middleware/node/index.mjs"
},
"./middleware/request-handler": {
"types": "./lib/middleware/request-handler/index.d.ts",
"import": "./lib/middleware/request-handler/index.mjs",
"require": "./lib/middleware/request-handler/index.cjs"
"import": "./lib/middleware/request-handler/index.mjs"
},
"./middleware/vercel-edge": {
"types": "./lib/middleware/vercel-edge/index.d.ts",
"import": "./lib/middleware/vercel-edge/index.mjs"
},
"./static": {
"types": "./lib/ssg/index.d.ts",
"import": "./lib/ssg/index.mjs",
"require": "./lib/ssg/index.cjs"
"import": "./lib/ssg/index.mjs"
},
"./ssg": {
"types": "./lib/ssg/index.d.ts",
"import": "./lib/ssg/index.mjs",
"require": "./lib/ssg/index.cjs"
"import": "./lib/ssg/index.mjs"
},
"./vite": {
"types": "./lib/vite/index.d.ts",
"import": "./lib/vite/index.mjs",
"require": "./lib/vite/index.cjs"
"import": "./lib/vite/index.mjs"
},
"./service-worker": {
"types": "./service-worker.d.ts",
"import": "./lib/service-worker.mjs",
"require": "./lib/service-worker.cjs"
"import": "./lib/service-worker.mjs"
},
"./package.json": "./package.json"
},
Expand Down
11 changes: 3 additions & 8 deletions packages/qwik-router/src/buildtime/vite/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any {
let mdxTransform: MdxTransform | null = null;
let rootDir: string | null = null;
let qwikPlugin: QwikVitePlugin | null;
let ssrFormat: 'esm' | 'cjs' = 'esm';
let outDir: string | null = null;
let viteCommand: string;
let devServer: ViteDevServer | null = null;
Expand Down Expand Up @@ -159,10 +158,6 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any {
return getRouteImports(ctx!.routes, manifest);
});

// @ts-ignore `format` removed in Vite 5
if (config.ssr?.format === 'cjs') {
ssrFormat = 'cjs';
}
outDir = config.build?.outDir;
},

Expand Down Expand Up @@ -331,7 +326,7 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any {
sequential: true,
async handler() {
if (ctx?.target === 'ssr' && outDir) {
await generateServerPackageJson(outDir, ssrFormat);
await generateServerPackageJson(outDir);
}
},
},
Expand All @@ -340,7 +335,7 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any {
return plugin;
}

async function generateServerPackageJson(outDir: string, ssrFormat: 'esm' | 'cjs') {
async function generateServerPackageJson(outDir: string) {
await fs.promises.mkdir(outDir, { recursive: true });
const serverPackageJsonPath = join(outDir, 'package.json');

Expand All @@ -357,7 +352,7 @@ async function generateServerPackageJson(outDir: string, ssrFormat: 'esm' | 'cjs

packageJson = {
...packageJson,
type: ssrFormat == 'cjs' ? 'commonjs' : 'module',
type: 'module',
};
const serverPackageJsonCode = JSON.stringify(packageJson, null, 2);

Expand Down
9 changes: 0 additions & 9 deletions packages/qwik-router/vite.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,6 @@ export default defineConfig(() => {
entryFileNames: (chunkInfo) =>
chunkInfo.name === 'index' ? '[name].qwik.mjs' : '[name]/index.mjs',
},
{
format: 'cjs',
chunkFileNames: (chunkInfo) =>
chunkInfo.moduleIds.some((id) => id.includes('runtime'))
? 'chunks/[name].qwik.cjs'
: 'chunks/[name].cjs',
entryFileNames: (chunkInfo) =>
chunkInfo.name === 'index' ? '[name].qwik.cjs' : '[name]/index.cjs',
},
],
external: [
/node:.*/,
Expand Down
52 changes: 10 additions & 42 deletions packages/qwik/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@
"production": "./dist/core.prod.mjs",
"min": "./dist/core.min.mjs",
"default": "./dist/core.prod.mjs"
},
"require": {
"development": "./dist/core.cjs",
"production": "./dist/core.prod.cjs",
"default": "./dist/core.prod.cjs"
}
},
"./cli": {
Expand All @@ -53,11 +48,6 @@
"production": "./dist/core.prod.mjs",
"min": "./dist/core.min.mjs",
"default": "./dist/core.prod.mjs"
},
"require": {
"development": "./dist/core.cjs",
"production": "./dist/core.prod.cjs",
"default": "./dist/core.prod.cjs"
}
},
"./jsx-runtime": {
Expand All @@ -67,11 +57,6 @@
"production": "./dist/core.prod.mjs",
"min": "./dist/core.min.mjs",
"default": "./dist/core.prod.mjs"
},
"require": {
"development": "./dist/core.cjs",
"production": "./dist/core.prod.cjs",
"default": "./dist/core.prod.cjs"
}
},
"./jsx-dev-runtime": {
Expand All @@ -81,11 +66,6 @@
"production": "./dist/core.prod.mjs",
"min": "./dist/core.min.mjs",
"default": "./dist/core.mjs"
},
"require": {
"development": "./dist/core.cjs",
"production": "./dist/core.prod.cjs",
"default": "./dist/core.cjs"
}
},
"./build": {
Expand All @@ -94,50 +74,36 @@
"development": "./dist/build/index.dev.mjs",
"production": "./dist/build/index.prod.mjs",
"default": "./dist/build/index.mjs"
},
"require": {
"development": "./dist/build/index.dev.cjs",
"production": "./dist/build/index.prod.cjs",
"default": "./dist/build/index.cjs"
}
},
"./loader": {
"types": "./dist/loader/index.d.ts",
"import": "./dist/loader/index.mjs",
"require": "./dist/loader/index.cjs"
"import": "./dist/loader/index.mjs"
},
"./insights": {
"types": "./dist/insights.d.ts",
"import": "./dist/insights/index.qwik.mjs",
"require": "./dist/insights/index.qwik.cjs"
"import": "./dist/insights/index.qwik.mjs"
},
"./insights/vite": {
"types": "./dist/insights/vite.d.ts",
"import": "./dist/insights/vite/index.mjs",
"require": "./dist/insights/vite/index.cjs"
"import": "./dist/insights/vite/index.mjs"
},
"./optimizer.cjs": "./dist/optimizer.cjs",
"./optimizer.mjs": "./dist/optimizer.mjs",
"./optimizer": {
"types": "./dist/optimizer.d.ts",
"import": "./dist/optimizer.mjs",
"require": "./dist/optimizer.cjs"
"import": "./dist/optimizer.mjs"
},
"./preloader": {
"import": "./dist/preloader.mjs",
"require": "./dist/preloader.cjs"
"import": "./dist/preloader.mjs"
},
"./server.cjs": "./dist/server.cjs",
"./server.mjs": "./dist/server.mjs",
"./server": {
"types": "./server.d.ts",
"import": "./dist/server.mjs",
"require": "./dist/server.cjs"
"import": "./dist/server.mjs"
},
"./testing": {
"types": "./dist/testing/index.d.ts",
"import": "./dist/testing/index.mjs",
"require": "./dist/testing/index.cjs"
"import": "./dist/testing/index.mjs"
},
"./qwikloader.js": "./dist/qwikloader.js",
"./qwikloader.debug.js": "./dist/qwikloader.debug.js",
Expand Down Expand Up @@ -205,7 +171,9 @@
"url": "https://github.com/QwikDev/qwik.git",
"directory": "packages/qwik"
},
"sideEffects": false,
"sideEffects": [
"./src/testing/vdom-diff.unit-util.ts"
],
"scripts": {
"build.insights": "cd src/insights && vite build --mode lib --emptyOutDir"
},
Expand Down
3 changes: 3 additions & 0 deletions packages/qwik/src/backpatch-executor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
* same container and applying the patches to the DOM elements.
*/

// needed to make this a module and make compiled-string-plugin work
export {};

const BACKPATCH_DATA_SELECTOR = 'script[type="qwik/backpatch"]';

const executorScript = document.currentScript;
Expand Down
1 change: 0 additions & 1 deletion packages/qwik/src/core/shared/platform/platform.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// keep this import from core/build so the cjs build works
import { isServer } from '@qwik.dev/core/build';
import { QError, qError } from '../error/error';
import { getSymbolHash } from '../qrl/qrl-utils';
Expand Down
4 changes: 2 additions & 2 deletions packages/qwik/src/core/shared/serdes/serialize.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { isDev } from '@qwik.dev/core/build';
import { VNodeDataFlag } from 'packages/qwik/src/server/types';
import type { VNodeData } from 'packages/qwik/src/server/vnode-data';
import { VNodeDataFlag } from '../../../server/types';
import type { VNodeData } from '../../../server/vnode-data';
import { vnode_isVNode } from '../../client/vnode';
import { _EFFECT_BACK_REF } from '../../internal';
import { AsyncComputedSignalImpl } from '../../reactive-primitives/impl/async-computed-signal-impl';
Expand Down
Loading
Loading