最近在开发新项目,时间比较紧急,因此并无时间去浏览技术文章沉淀新知识。但只要用心,会思考,在业务开发中也是能够沉淀技术的。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,完美解决。