安装
npm install -D @craco/craco
创建文件 carco.config.js
const path = require('path')
module.exports = {
// webpack 配置
webpack: {
// 配置别名
alias: {
// 约定:使用 @ 表示 src 文件所在路径
'@': path.resolve(__dirname, 'src'),
},
},
}
修改tsconfig.json
新增
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"include": [
"src"
]
}
修改 package.json
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject"
},
效果
/*
* @Description:
* @Date: 2022-06-14 17:09:28
*/
import React from 'react';
import {
BrowserRouter,
Routes,
Route,
} from "react-router-dom";
import About from '@/pages/about';
import Home from '@/pages/home';
// const root = ReactDOM.createRoot(document.getElementById('root'));
function Router () {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<About />}>
</Route>
<Route path="/home" element={<Home />}>
</Route>
</Routes>
</BrowserRouter>
);
}
export default Router;