最近在開發新項目,時間比較緊急,因此並無時間去瀏覽技術文章沉澱新知識。但只要用心,會思考,在業務開發中也是能夠沉澱技術的。javascript
此次的項目是用create-react-app
搭建的,開發語言選的是typescript
。因爲是首次用typescript
來開發搭建一個完整的項目(之前只是用typescript
寫寫組件)遇到的坑仍是挺多的。java
通常的項目,咱們能夠在webpack.base.config
文件裏進行設置react
webpack.base.config 文件 ... module.exports = { ... resolve: { alias: { '@': src } } ... } ... 複製代碼
但create-react-app
沒有這個文件,由於腳手架默認把全部的配置都設置好了,若是想要修改就須要新建一個config-overrides.js
文件去覆蓋默認配置。webpack
1.修改config-overrides.js文件:web
const { override, addWebpackAlias, addDecoratorsLegacy } = require('customize-cra'); const path = require('path') module.exports = override( addWebpackAlias({ "@": path.resolve(__dirname, 'src') }), addDecoratorsLegacy(), ); 複製代碼
2.在tsconfig.json文件中新增paths
配置項:typescript
{ "compilerOptions": { "experimentalDecorators": true, "baseUrl": "src", "paths": { "@/*": ["src/*"] }, ... } } 複製代碼
將App.tsx中component的引入方式改成:npm
import component from '@/component' 複製代碼
第一步沒什麼問題,執行第二個步驟,當你npm run start
啓動項目的時候,項目編譯報錯:Cannot find module '@/component'。如今的你表情以下↓ ↓json
這個時候你能夠去tsconfig.json
文件中看看,paths
不見了!小朋友你是否是有不少問號?markdown
爲了解決上述步驟二出現的問題,能夠在項目根目錄(src
同級目錄)新建一個paths.json文件,具體文件名稱可自行修改,加入如下內容:app
{ "compilerOptions": { "baseUrl": "src", "paths": { "@/*": ["*"] } } } 複製代碼
而後在tsconfig.json
裏修改:
"extends": "./paths.json" 複製代碼
ok,完美解決。