Create?react?app修改webapck配置導(dǎo)入文件alias
create react app
create-react-app
是 react 的官方項(xiàng)目腳手架,可以幫我們快速的搭建一個(gè) react 項(xiàng)目。了解 vue 的同學(xué)應(yīng)該知道,vue的官方腳手架是默認(rèn)支持@
到src
的絕對(duì)路徑引用,可以優(yōu)雅高效的引用其它模塊,特別是跨目錄,深嵌套的引用。而且vue把webpack的配置文件暴露出來,可以很方便的對(duì)webapck進(jìn)行個(gè)性化的配置修改。
相比之下,create react app生成的項(xiàng)目,默認(rèn)還是用相對(duì)路徑的引入,而且把webpack的配置深度集成到腳本里面,如果需要個(gè)性化的修改配置,只能通過react-scripts eject
來導(dǎo)出wenpack配置,而且修改之后就只能自己維護(hù)了,一些我們不需要修改的react官方默認(rèn)配置可能就會(huì)丟失。我們可以通過以下兩個(gè)插件來優(yōu)雅的修改create react app生成的項(xiàng)目配置,以修改導(dǎo)入路徑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
的默認(rèn)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
的默認(rèn)npm腳本
/* package.json */ "scripts": { "start": "craco start", "build": "craco build", "test": "craco test", "eject": "react-scripts eject" }
總結(jié)
我們可以通過 react-app-rewired
和 @craco/craco
兩個(gè)插件優(yōu)雅的修改 create-react-app
生成的項(xiàng)目配置。兩個(gè)插件的使用方法都差不多,也都可以實(shí)現(xiàn)我們的需求,至于使用哪一個(gè)見仁見智。我建議是用@craco/craco
,比較新,react-app-rewired
最后的更新已經(jīng)是兩年前了。
以上就是Create react app修改webapck配置導(dǎo)入文件alias的詳細(xì)內(nèi)容,更多關(guān)于Create react app修改webapck的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
ReactNative 之FlatList使用及踩坑封裝總結(jié)
本篇文章主要介紹了ReactNative 之FlatList使用及踩坑封裝總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11JavaScript的React框架中的JSX語法學(xué)習(xí)入門教程
這篇文章主要介紹了JavaScript的React框架中的JSX語法學(xué)習(xí)入門教程,React是由Facebook開發(fā)并開源的高人氣js框架,需要的朋友可以參考下2016-03-03React中實(shí)現(xiàn)防抖功能的兩種方式小結(jié)
這篇文章主要介紹了React中實(shí)現(xiàn)防抖功能的兩種方式小結(jié),具有很好的 參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Ant?Design?組件庫(kù)之步驟條實(shí)現(xiàn)
這篇文章主要為大家介紹了Ant?Design組件庫(kù)之步驟條實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08React?Native系列之Recyclerlistview使用詳解
這篇文章主要為大家介紹了React?Native系列之Recyclerlistview使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10