Create?react?app修改webapck配置導入文件alias
create react app
create-react-app是 react 的官方項目腳手架,可以幫我們快速的搭建一個 react 項目。了解 vue 的同學應該知道,vue的官方腳手架是默認支持@到src的絕對路徑引用,可以優(yōu)雅高效的引用其它模塊,特別是跨目錄,深嵌套的引用。而且vue把webpack的配置文件暴露出來,可以很方便的對webapck進行個性化的配置修改。
相比之下,create react app生成的項目,默認還是用相對路徑的引入,而且把webpack的配置深度集成到腳本里面,如果需要個性化的修改配置,只能通過react-scripts eject來導出wenpack配置,而且修改之后就只能自己維護了,一些我們不需要修改的react官方默認配置可能就會丟失。我們可以通過以下兩個插件來優(yōu)雅的修改create react app生成的項目配置,以修改導入路徑alias為例說明。
react app rewired
- 安裝插件
npm install react-app-rewired --save-dev
- 創(chuàng)建
config-overrides.js
/* config-overrides.js */
const path = require('path');
module.exports = {
webpack: function(config, env) {
config.resolve.alias['@'] = path.resolve(__dirname, 'src');
return config;
},
jest: function(config) {
const {
moduleNameMapper = {},
} = config;
config.moduleNameMapper = {
...moduleNameMapper,
'^@/(.*)$': '<rootDir>/src/$1',
};
return config;
}
}- 修改
react-scripts的默認npm腳本
/* package.json */
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
}@craco/craco
- 安裝
npm i -D @craco/craco
- 創(chuàng)建
craco-config.js文件
const path = require('path');
module.exports = {
webpack: {
configure: (webpackConfig) => {
webpackConfig.resolve.alias['@'] = path.resolve(__dirname, 'src');
return webpackConfig;
},
},
jest: {
configure: (jestConfig) => {
const {
moduleNameMapper = {},
} = jestConfig;
jestConfig.moduleNameMapper = {
...moduleNameMapper,
'^@/(.*)$': '<rootDir>/src/$1',
};
return jestConfig;
},
}
};- 修改
react-scripts的默認npm腳本
/* package.json */
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject"
}總結
我們可以通過 react-app-rewired 和 @craco/craco 兩個插件優(yōu)雅的修改 create-react-app 生成的項目配置。兩個插件的使用方法都差不多,也都可以實現(xiàn)我們的需求,至于使用哪一個見仁見智。我建議是用@craco/craco,比較新,react-app-rewired最后的更新已經是兩年前了。
以上就是Create react app修改webapck配置導入文件alias的詳細內容,更多關于Create react app修改webapck的資料請關注腳本之家其它相關文章!
相關文章
ReactNative 之FlatList使用及踩坑封裝總結
本篇文章主要介紹了ReactNative 之FlatList使用及踩坑封裝總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
JavaScript的React框架中的JSX語法學習入門教程
這篇文章主要介紹了JavaScript的React框架中的JSX語法學習入門教程,React是由Facebook開發(fā)并開源的高人氣js框架,需要的朋友可以參考下2016-03-03
React?Native系列之Recyclerlistview使用詳解
這篇文章主要為大家介紹了React?Native系列之Recyclerlistview使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10

