Skip to content

Commit 855aa6f

Browse files
author
shlab
committed
feat: vite7/8 support
1 parent 17757b6 commit 855aa6f

21 files changed

Lines changed: 368 additions & 9 deletions
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8" />
6+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8+
<title>Vite + React + TS</title>
9+
</head>
10+
11+
<body>
12+
<div id="root"></div>
13+
<script type="module" src="/src/main.tsx"></script>
14+
</body>
15+
16+
</html>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "example-vite7",
3+
"version": "1.0.0",
4+
"private": true,
5+
"description": "Example",
6+
"scripts": {
7+
"build": "vite build",
8+
"start": "vite --host"
9+
},
10+
"dependencies": {
11+
"@ts-mono-alias/package-a": "workspace:*",
12+
"@ts-mono-alias/package-b": "workspace:*",
13+
"@ts-mono-alias/package-c": "workspace:*",
14+
"react": "^18.2.0",
15+
"react-dom": "^18.2.0"
16+
},
17+
"devDependencies": {
18+
"@types/node": "^18.11.15",
19+
"@types/react": "^18.0.26",
20+
"@types/react-dom": "^18.0.9",
21+
"@vitejs/plugin-react": "^4.0.0",
22+
"vite-plugin-ts-mono-alias": "file:../../..",
23+
"vite": "^7.3.1"
24+
}
25+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { useMemo, useState } from 'react';
2+
import { a } from '@ts-mono-alias/package-a';
3+
import { b } from '@ts-mono-alias/package-b';
4+
import c from '@ts-mono-alias/package-c';
5+
6+
import Demo from '@/components/Demo';
7+
8+
function App() {
9+
const [count, setCount] = useState(0);
10+
11+
const resultA = useMemo(() => a(), []);
12+
const resultB = useMemo(() => b(), []);
13+
14+
return (
15+
<div className="App">
16+
<h1>Vite + React</h1>
17+
<div className="card">
18+
<button onClick={() => setCount((c) => c + 1)}>count is {count}</button>
19+
<p>a: {resultA}</p>
20+
<p>b: {resultB}</p>
21+
<p>c: {c()}</p>
22+
</div>
23+
<Demo />
24+
</div>
25+
);
26+
}
27+
28+
export default App;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default function Demo() {
2+
return <div>demo</div>
3+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import ReactDOM from 'react-dom/client';
3+
4+
import App from './App';
5+
6+
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
7+
<React.StrictMode>
8+
<App />
9+
</React.StrictMode>,
10+
);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"extends": "../../tsconfig.json",
3+
"compilerOptions": {
4+
"isolatedModules": false,
5+
"composite": true,
6+
"module": "ESNext",
7+
"moduleResolution": "Node",
8+
"allowSyntheticDefaultImports": true,
9+
"baseUrl": ".",
10+
"types": ["node"],
11+
"paths": {
12+
"@/*": ["./src/*"]
13+
}
14+
},
15+
"include": ["src"],
16+
"exclude": ["dist", "**/*.test.tsx", "**/*.test.ts"]
17+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { join, resolve } from 'path';
2+
3+
import tsMonoAlias from '../../../dist/index.cjs';
4+
import { defineConfig } from 'vite';
5+
6+
// https://vitejs.dev/config/
7+
export default defineConfig(() => {
8+
return {
9+
optimizeDeps: {
10+
include: ['react/jsx-runtime'],
11+
},
12+
plugins: [
13+
tsMonoAlias({
14+
ignorePackages: ['example'],
15+
exact: true,
16+
alias: {
17+
'@ts-mono-alias/package-c': ({ dir }) => join(dir, './index.ts'),
18+
},
19+
cwd: __dirname,
20+
}),
21+
],
22+
resolve: {
23+
alias: [{ find: '@', replacement: resolve(__dirname, 'src') }],
24+
},
25+
26+
build: {
27+
assetsDir: '',
28+
},
29+
};
30+
});
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8" />
6+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8+
<title>Vite + React + TS</title>
9+
</head>
10+
11+
<body>
12+
<div id="root"></div>
13+
<script type="module" src="/src/main.tsx"></script>
14+
</body>
15+
16+
</html>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "example-vite8",
3+
"version": "1.0.0",
4+
"private": true,
5+
"description": "Example",
6+
"scripts": {
7+
"build": "vite build",
8+
"start": "vite --host"
9+
},
10+
"dependencies": {
11+
"@ts-mono-alias/package-a": "workspace:*",
12+
"@ts-mono-alias/package-b": "workspace:*",
13+
"@ts-mono-alias/package-c": "workspace:*",
14+
"react": "^18.2.0",
15+
"react-dom": "^18.2.0"
16+
},
17+
"devDependencies": {
18+
"@types/node": "^18.11.15",
19+
"@types/react": "^18.0.26",
20+
"@types/react-dom": "^18.0.9",
21+
"@vitejs/plugin-react": "^4.0.0",
22+
"vite-plugin-ts-mono-alias": "file:../../..",
23+
"vite": "^8.0.0"
24+
}
25+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { useMemo, useState } from 'react';
2+
import { a } from '@ts-mono-alias/package-a';
3+
import { b } from '@ts-mono-alias/package-b';
4+
import c from '@ts-mono-alias/package-c';
5+
6+
import Demo from '@/components/Demo';
7+
8+
function App() {
9+
const [count, setCount] = useState(0);
10+
11+
const resultA = useMemo(() => a(), []);
12+
const resultB = useMemo(() => b(), []);
13+
14+
return (
15+
<div className="App">
16+
<h1>Vite + React</h1>
17+
<div className="card">
18+
<button onClick={() => setCount((c) => c + 1)}>count is {count}</button>
19+
<p>a: {resultA}</p>
20+
<p>b: {resultB}</p>
21+
<p>c: {c()}</p>
22+
</div>
23+
<Demo />
24+
</div>
25+
);
26+
}
27+
28+
export default App;

0 commit comments

Comments
 (0)