X Tutup
Skip to content

Commit 5598804

Browse files
committed
feat: support vite
1 parent c0cb80d commit 5598804

File tree

4 files changed

+75
-10
lines changed

4 files changed

+75
-10
lines changed

packages/tanstack-router/README.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,6 @@ Enable them explicitly:
225225
/>
226226
```
227227

228-
## NativeScript Webpack Integration
229-
230-
This package ships a `nativescript.webpack.js` extension so the `solid-js/web`
231-
alias shim is applied automatically in NativeScript projects during final
232-
webpack config merge.
233-
234-
You should not need to manually add `solid-js/web` alias overrides in your app
235-
webpack config when using this package.
236-
237228
## API Overview
238229

239230
### Root (`@nativescript/tanstack-router`)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { createRequire } from 'node:module';
2+
import { dirname, join } from 'node:path';
3+
import { existsSync } from 'node:fs';
4+
import { fileURLToPath } from 'node:url';
5+
6+
const require = createRequire(import.meta.url);
7+
8+
let solidJsRuntimePath;
9+
let solidJsHPath;
10+
const solidWebShimPath = fileURLToPath(new URL('./solid-web-shim.js', import.meta.url));
11+
const jsxRuntimeShimPath = fileURLToPath(new URL('./solid-js-jsx-runtime-shim.js', import.meta.url));
12+
13+
try {
14+
const solidJsPackagePath = require.resolve('solid-js/package.json');
15+
const solidJsRoot = dirname(solidJsPackagePath);
16+
17+
const candidateRuntimePath = join(solidJsRoot, 'h', 'jsx-runtime', 'dist', 'jsx.js');
18+
const candidateHPath = join(solidJsRoot, 'h', 'dist', 'h.js');
19+
20+
if (existsSync(candidateRuntimePath)) {
21+
solidJsRuntimePath = candidateRuntimePath;
22+
}
23+
24+
if (existsSync(candidateHPath)) {
25+
solidJsHPath = candidateHPath;
26+
}
27+
28+
if (!solidJsRuntimePath || !solidJsHPath) {
29+
console.warn(
30+
'[nativescript/tanstack-router] Could not resolve one or more SolidJS runtime alias paths for Vite.',
31+
{
32+
runtimeFound: !!solidJsRuntimePath,
33+
hFound: !!solidJsHPath,
34+
solidJsRoot,
35+
},
36+
);
37+
}
38+
} catch (error) {
39+
console.warn(
40+
'[nativescript/tanstack-router] Failed to resolve SolidJS package location for Vite aliases.',
41+
error instanceof Error ? error.message : error,
42+
);
43+
}
44+
45+
export default () => ({
46+
resolve: {
47+
alias: {
48+
// Keep Vite behavior aligned with nativescript.webpack.js integration.
49+
'solid-js/web': solidWebShimPath,
50+
'solid-js/jsx-runtime': jsxRuntimeShimPath,
51+
'solid-js/jsx-dev-runtime': jsxRuntimeShimPath,
52+
...(solidJsHPath
53+
? {
54+
'solid-js/h': solidJsHPath,
55+
}
56+
: {}),
57+
},
58+
},
59+
});

packages/tanstack-router/project.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,18 @@
77
"build": {
88
"executor": "nx:run-commands",
99
"options": {
10-
"commands": ["rm -rf dist/packages/tanstack-router", "tsc -p packages/tanstack-router/tsconfig.json --noEmit", "tsup --config packages/tanstack-router/tsup.config.ts", "cp packages/tanstack-router/package.json dist/packages/tanstack-router/package.json", "cp packages/tanstack-router/README.md dist/packages/tanstack-router/README.md", "cp packages/tanstack-router/nativescript.webpack.js dist/packages/tanstack-router/nativescript.webpack.js", "cp packages/tanstack-router/solid-web-shim.js dist/packages/tanstack-router/solid-web-shim.js", "cp packages/tanstack-router/solid-js-jsx-runtime-shim.js dist/packages/tanstack-router/solid-js-jsx-runtime-shim.js", "cp LICENSE dist/packages/tanstack-router/LICENSE"],
10+
"commands": [
11+
"rm -rf dist/packages/tanstack-router",
12+
"tsc -p packages/tanstack-router/tsconfig.json --noEmit",
13+
"tsup --config packages/tanstack-router/tsup.config.ts",
14+
"cp packages/tanstack-router/package.json dist/packages/tanstack-router/package.json",
15+
"cp packages/tanstack-router/README.md dist/packages/tanstack-router/README.md",
16+
"cp packages/tanstack-router/nativescript.vite.mjs dist/packages/tanstack-router/nativescript.vite.mjs",
17+
"cp packages/tanstack-router/nativescript.webpack.js dist/packages/tanstack-router/nativescript.webpack.js",
18+
"cp packages/tanstack-router/solid-web-shim.js dist/packages/tanstack-router/solid-web-shim.js",
19+
"cp packages/tanstack-router/solid-js-jsx-runtime-shim.js dist/packages/tanstack-router/solid-js-jsx-runtime-shim.js",
20+
"cp LICENSE dist/packages/tanstack-router/LICENSE"
21+
],
1122
"parallel": false
1223
},
1324
"outputs": ["{workspaceRoot}/dist/packages/tanstack-router"]

packages/tanstack-router/vitest.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import { defineConfig } from 'vitest/config';
22

33
export default defineConfig({
44
root: __dirname,
5+
esbuild: {
6+
jsx: 'automatic',
7+
jsxImportSource: 'solid-js',
8+
},
59
test: {
610
environment: 'node',
711
include: ['test/**/*.test.ts'],

0 commit comments

Comments
 (0)
X Tutup