01-react隨記-打包去掉.map文件的幾種方式

React打包去掉.map文件的幾種方式

網(wǎng)上常見(jiàn)的方法有四種

方法一: 直接修改配置文件

  1. 在node_modules文件夾中找到react-scripts包路徑/node_modules/react-scripts/config/webpack.config.prod.js
  2. 找到const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';將這一行代碼注釋
  3. 在下面添加一行 const shouldUseSourceMap = false;
  4. 重啟終端,重新打包
// const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
const shouldUseSourceMap = false ;
image-20201028222415979

生成文件如下圖:

image-20201028222540412

方法二: 使用react-app-rewired,并配置

module.exports = function override(config, env) {
    // 添加一行這個(gè)代碼,關(guān)閉
    config.devtool = false
}

注意點(diǎn):

  • 如果使用了react-app-rewired,那么要注意版本是1.6.+,

  • 修改devtool=false,只會(huì)將.js.map文件刪除

    image-20201028223219678

方式三: 修改生產(chǎn)環(huán)境的打包指令

  1. 安裝cross-env
yarn add cross-env
  1. 修改package.json中的scripts區(qū)域的代碼
 "scripts": {
    "start": "react-app-rewired start",
    // 生產(chǎn)環(huán)境寫下 cross-env GENERATE_SOURCEMAP=false
    "build": "cross-env GENERATE_SOURCEMAP=false react-app-rewired build",
    "test": "react-app-rewired test --env=jsdom",
    "eject": "react-scripts eject"
  },
  1. 再次執(zhí)行yarn build,你會(huì)發(fā)現(xiàn)很神奇事情
image-20201029060809328

方式四:添加.env文件修改變量

1.在根目錄下創(chuàng)建 .env文件

2.里面寫入

GENERATE_SOURCEMAP = false

3.執(zhí)行yarn build

image-20210104192342365

tips:

yarn eject 項(xiàng)目后發(fā)現(xiàn)了 react 會(huì)加載根目錄下的.env文件

image-20210104192840462

env.js

image-20210104193510207

如果我們要定義變量 必須通過(guò) REACT_APP_XXXX = xxx 形式,因?yàn)榧虞d時(shí)候進(jìn)行了正則表達(dá)式的匹配

image-20210104192742188

總結(jié)

  • 生產(chǎn)環(huán)境時(shí),遇到要把.map文件去掉,方式一要修改node_modules包中的文件比較麻煩,如果經(jīng)常去刪除node_modules,那么你就要經(jīng)常去修改里面的文件,十分繁瑣
  • 方式二只能取出.js.map的文件,并不能取出.css.map文件
  • 方式三也是查詢資料找到了,簡(jiǎn)單修改了scripts標(biāo)簽中打包生產(chǎn)環(huán)境的指令就可以實(shí)現(xiàn)了,更加簡(jiǎn)單方便。
  • 方法四(推薦),感謝大佬的留言

??有更好的方案歡迎留言

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容