1. 引言
create-react-app
对webpack
的配置进行了封装并默认隐藏了配置文件,要对配置文件修改,如何使其暴露呢?
有两种方法:
npm run eject
react-app-rewired
2. npm run eject
webpack的配置文件webpack.base.conf.js
隐藏在了node_modules
文件夹下的react-scripts
下
可以通过以下命令将webpack配置文件暴露出来:
npm run eject
eject
为不可恢复操作,输入y,即可进行eject
。eject
后,会在目录下发现几个新增的目录config,script
。
webpack.config
有两个,一个是dev
(开发)环境下的配置文件,一个为prod
(生产环境下,即npm run build
的配置文件)环境下的配置文件。paths为各种路径,我们可以在这个文件中添加我们自己的路径。
这种暴露出配置入口的缺点:
npm run eject
命名不可逆,一旦配置文件暴露后就不可再隐藏- 扩展的配置和
create-react-app
内建的webpack
配置混合在了一起,不利于配置出现问题后的排查
3. 使用react-app-rewired
再配置
react-app-rewired
安装
npm install react-app-rewired@2.0.2-next.0 --save-dev
创建文件
在项目根目录中创建config-overrides.js
文件用于修改默认配置:
/* config-overrides.js */
module.exports = function override(config, env) {
//do stuff with the webpack config...
return config;
}
修改package.json
里的启动配置
默认配置:
改为如下:
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test"
},
4. 引入路径配置
相对路径代码的时候,经常出现路径层级较深的情况,引入起来比较麻烦,如何配置路径别名,避免'./../../'的反复书写?
- 在
webpack.config.js
中添加alias
可以根据项目自行配置:
resolve: {
alias: {
'@': path.resolve(__dirname, '../src')
}
},
import { Banner } from '../../../src/components/Banner';
就可以写成 import { Banner } from '@/components/Banner';
- 如果开启了ESlint检查,会报错,如下解决:
eslint-import-resolver-alias安装:
npm install eslint-plugin-import eslint-import-resolver-alias --save-dev
配置.eslintrc.js
:
"settings": {
'import/resolver': {
alias: {
map: [
['@', path.resolve(__dirname, './src')]
],
extensions: ['.js', '.less', '.jsx']
}
}
},
参考文章
- 扩展create-react-app的webpack配置
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!