Skip to content

Commit 1128fcb

Browse files
committed
fix: avoid bundling server entry in outer build
1 parent 4f88bc3 commit 1128fcb

21 files changed

Lines changed: 101 additions & 74 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
## 0.21.16 (2026-05-25)
2+
3+
### Fixed
4+
5+
- Production builds now use a no-op outer Vite trigger entry instead of
6+
bundling the generated Hono SSR entry as a browser/client artifact.
7+
- JSR remote core subpath resolution now fetches `@lessjs/core` source URLs
8+
instead of accidentally deriving paths from `@lessjs/adapter-vite`.
9+
110
## 0.21.15 (2026-05-25)
211

312
### Fixed

deno.lock

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/adapter-lit/deno.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"name": "@lessjs/adapter-lit",
3-
"version": "0.21.15",
3+
"version": "0.21.16",
44
"exports": {
55
".": "./src/index.ts",
66
"./ssr": "./src/ssr.ts",
77
"./dsd-hydration": "./src/dsd-hydration.ts"
88
},
99
"imports": {
10-
"@lessjs/core": "jsr:@lessjs/core@^0.21.15",
11-
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.15/logger"
10+
"@lessjs/core": "jsr:@lessjs/core@^0.21.16",
11+
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.16/logger"
1212
},
1313
"tasks": {
1414
"build": "deno check src/index.ts src/ssr.ts src/dsd-hydration.ts"

packages/adapter-react/deno.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"name": "@lessjs/adapter-react",
3-
"version": "0.21.15",
3+
"version": "0.21.16",
44
"exports": {
55
".": "./src/index.ts",
66
"./ssr": "./src/ssr.ts",
77
"./dsd-hydration": "./src/dsd-hydration.ts"
88
},
99
"imports": {
10-
"@lessjs/core": "jsr:@lessjs/core@^0.21.15",
11-
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.15/logger",
10+
"@lessjs/core": "jsr:@lessjs/core@^0.21.16",
11+
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.16/logger",
1212
"react": "npm:react@^19",
1313
"react-dom": "npm:react-dom@^19",
1414
"react-dom/server": "npm:react-dom@^19/server.node"

packages/adapter-vanilla/deno.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"name": "@lessjs/adapter-vanilla",
3-
"version": "0.21.15",
3+
"version": "0.21.16",
44
"exports": {
55
".": "./src/index.ts",
66
"./ssr": "./src/ssr.ts",
77
"./dsd-hydration": "./src/dsd-hydration.ts"
88
},
99
"imports": {
10-
"@lessjs/core": "jsr:@lessjs/core@^0.21.15",
11-
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.15/logger"
10+
"@lessjs/core": "jsr:@lessjs/core@^0.21.16",
11+
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.16/logger"
1212
},
1313
"tasks": {
1414
"build": "deno check src/index.ts src/ssr.ts src/dsd-hydration.ts",

packages/adapter-vite/deno.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lessjs/adapter-vite",
3-
"version": "0.21.15",
3+
"version": "0.21.16",
44
"exports": {
55
".": "./src/index.ts",
66
"./build-context": "./src/build-context.ts",
@@ -10,13 +10,13 @@
1010
"./cli/build-ssg": "./src/cli/build-ssg.ts"
1111
},
1212
"imports": {
13-
"@lessjs/core": "jsr:@lessjs/core@^0.21.15",
14-
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.15/logger",
15-
"@lessjs/core/errors": "jsr:@lessjs/core@^0.21.15/errors",
16-
"@lessjs/core/context": "jsr:@lessjs/core@^0.21.15/context",
17-
"@lessjs/core/navigation": "jsr:@lessjs/core@^0.21.15/navigation",
18-
"@lessjs/core/build-types": "jsr:@lessjs/core@^0.21.15/build-types",
19-
"@lessjs/core/virtual-ids": "jsr:@lessjs/core@^0.21.15/virtual-ids",
13+
"@lessjs/core": "jsr:@lessjs/core@^0.21.16",
14+
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.16/logger",
15+
"@lessjs/core/errors": "jsr:@lessjs/core@^0.21.16/errors",
16+
"@lessjs/core/context": "jsr:@lessjs/core@^0.21.16/context",
17+
"@lessjs/core/navigation": "jsr:@lessjs/core@^0.21.16/navigation",
18+
"@lessjs/core/build-types": "jsr:@lessjs/core@^0.21.16/build-types",
19+
"@lessjs/core/virtual-ids": "jsr:@lessjs/core@^0.21.16/virtual-ids",
2020
"esbuild": "npm:esbuild@^0.25",
2121
"hono": "npm:hono@^4",
2222
"@hono/vite-dev-server": "npm:@hono/vite-dev-server@^0.25.3",

packages/adapter-vite/src/cli/build-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const log = createLogger('ssg');
2626

2727
const VIRTUAL_CLIENT_ENTRY_ID = 'virtual:less-client-entry';
2828
const RESOLVED_CLIENT_ENTRY_ID = '\0' + VIRTUAL_CLIENT_ENTRY_ID;
29-
const FALLBACK_LESSJS_VERSION = '0.21.15';
29+
const FALLBACK_LESSJS_VERSION = '0.21.16';
3030

3131
/** Workspace root derived from this module's location (packages/adapter-vite/src/cli/).
3232
* Only valid in local workspace (file:// import.meta.url). In JSR consumers, returns null. */

packages/adapter-vite/src/cli/build-ssg.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const log = createLogger('ssg');
3535

3636
const VIRTUAL_SSG_ENTRY_ID = 'virtual:less-ssg-entry';
3737
const RESOLVED_SSG_ENTRY_ID = '\0' + VIRTUAL_SSG_ENTRY_ID;
38-
const FALLBACK_LESSJS_VERSION = '0.21.15';
38+
const FALLBACK_LESSJS_VERSION = '0.21.16';
3939

4040
function getJsrPackageVersion(metaUrl: string): string {
4141
const match = metaUrl.match(/\/@lessjs\/adapter-vite\/([^/]+)\//);

packages/adapter-vite/src/index.ts

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,21 @@ const OPTIONAL_PACKAGE_STUBS: Record<string, string> = {
9292
].join('\n'),
9393
};
9494

95+
const LESSJS_PACKAGE_SRC_BASE_RE = /\/@lessjs\/([^/]+)\/([^/]+)\/src\/.*$/;
96+
97+
function getLessPackageSrcBase(metaUrl: string, packageName: string): string {
98+
const match = metaUrl.match(LESSJS_PACKAGE_SRC_BASE_RE);
99+
if (match) {
100+
return metaUrl.replace(
101+
LESSJS_PACKAGE_SRC_BASE_RE,
102+
`/@lessjs/${packageName}/${match[2]}/src/`,
103+
);
104+
}
105+
return metaUrl
106+
.replace(/\/@lessjs\/[^/]+@([^/]+)\/src\/.*$/, `/@lessjs/${packageName}/$1/src/`)
107+
.replace(/\/src\/.*$/, '/src/');
108+
}
109+
95110
function optionalPackageStubsPlugin(): Plugin {
96111
return {
97112
name: 'less:optional-package-stubs',
@@ -144,10 +159,7 @@ function createCoreResolvePlugin(metaUrl: string): Plugin {
144159
// Compute JSR base URL for source fetching.
145160
let jsrSrcBase = '';
146161
if (isRemote) {
147-
// Handle both @version and /version URL formats
148-
jsrSrcBase = metaUrl
149-
.replace(/\/src\/index\.ts$/, '/src/')
150-
.replace(/@(\d+\.\d+\.\d+)\/src\/$/, '/$1/src/');
162+
jsrSrcBase = getLessPackageSrcBase(metaUrl, 'core');
151163
}
152164

153165
return {
@@ -442,6 +454,8 @@ export function less(
442454

443455
const VIRTUAL_ENTRY_ID = 'virtual:less-hono-entry';
444456
const RESOLVED_ENTRY_ID = '\0' + VIRTUAL_ENTRY_ID;
457+
const VIRTUAL_BUILD_TRIGGER_ID = 'virtual:less-build-trigger';
458+
const RESOLVED_BUILD_TRIGGER_ID = '\0' + VIRTUAL_BUILD_TRIGGER_ID;
445459

446460
// v0.19.1 Phase 6: Discover client-only tags from Hub registry data (ADR-0035 A1)
447461
// Reads _hub-data-full.ts at build time and extracts tagNames where
@@ -542,7 +556,7 @@ export function less(
542556
// Keep the budget explicit so Vite does not report it as an unexpected warning.
543557
chunkSizeWarningLimit: 1500,
544558
rollupOptions: {
545-
input: [VIRTUAL_ENTRY_ID],
559+
input: [VIRTUAL_BUILD_TRIGGER_ID],
546560
},
547561
},
548562
};
@@ -680,9 +694,13 @@ export function less(
680694

681695
resolveId(id) {
682696
if (id === VIRTUAL_ENTRY_ID) return RESOLVED_ENTRY_ID;
697+
if (id === VIRTUAL_BUILD_TRIGGER_ID) return RESOLVED_BUILD_TRIGGER_ID;
683698
},
684699

685700
load(id) {
701+
if (id === RESOLVED_BUILD_TRIGGER_ID) {
702+
return 'export default null;';
703+
}
686704
if (id === RESOLVED_ENTRY_ID) {
687705
// Always regenerate to pick up late-settled ctx fields (e.g., blogOptions
688706
// from lessContent() buildStart() which runs after less:core buildStart()).

packages/app/deno.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
22
"name": "@lessjs/app",
3-
"version": "0.21.15",
3+
"version": "0.21.16",
44
"exports": {
55
".": "./src/index.ts"
66
},
77
"imports": {
8-
"@lessjs/core": "jsr:@lessjs/core@^0.21.15",
9-
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.15/logger",
10-
"@lessjs/adapter-vite": "jsr:@lessjs/adapter-vite@^0.21.15",
11-
"@lessjs/adapter-vite/build-context": "jsr:@lessjs/adapter-vite@^0.21.15/build-context",
12-
"@lessjs/content": "jsr:@lessjs/content@^0.21.15",
13-
"@lessjs/i18n": "jsr:@lessjs/i18n@^0.21.15",
8+
"@lessjs/core": "jsr:@lessjs/core@^0.21.16",
9+
"@lessjs/core/logger": "jsr:@lessjs/core@^0.21.16/logger",
10+
"@lessjs/adapter-vite": "jsr:@lessjs/adapter-vite@^0.21.16",
11+
"@lessjs/adapter-vite/build-context": "jsr:@lessjs/adapter-vite@^0.21.16/build-context",
12+
"@lessjs/content": "jsr:@lessjs/content@^0.21.16",
13+
"@lessjs/i18n": "jsr:@lessjs/i18n@^0.21.16",
1414
"vite": "npm:vite@8.0.10"
1515
},
1616
"publish": {

0 commit comments

Comments
 (0)