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