当前位置: 首页 > news >正文

create-react-app 打包去掉 map文件

前言:

在使用 create-react-app 创建的React应用中,默认情况下会生成带有.map文件的打包文件,这些.map文件包含了源代码和调试信息,用于开发和调试过程中进行错误跟踪。然而,在生产环境中,这些.map文件通常是不必要的,因为它们会增加打包文件的大小,而且不会被浏览器使用。

默认的打包文件目录截图:
map文件很大,部署到生产复制有些不合适,虽然,不影响加载速度,但是占磁盘空间。
打包截图

解决方案:

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

在node_modules文件夹中找到react-scripts包路径/node_modules/react-scripts/config/webpack.config.prod.js
找到const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== ‘false’;将这一行代码注释
在下面添加一行 const shouldUseSourceMap = false;
重启终端,重新打包

如果 使用了 npm run eject则可以直接修改 config/webpack.config.js 里的内容 :
搜索 shouldUseSourceMap 找到 const 声明它的地方。然后直接 让其=false(或者复制一下=false也行)

const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';

改成:

//const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP= 'false';

config/webpack.config.js截图

方法二:修改 package.json里的 打包命令

yarn add cross-env

修改 package.json里的build 命令 :

 "build": "cross-env GENERATE_SOURCEMAP=false node scripts/build.js",

方法三:添加.env文件修改变量(推荐)

在根目录下创建 .env文件,里面写入:

GENERATE_SOURCEMAP = false

方法四:没暴露 webpack配置

react-app-rewired 和 customize-cra-5 这个也可以重写自己的webpack配置。

module.exports = function override(config, env) {// 修改生成 source map 的配置config.devtool = 'source-map'; // 或者 'nosources-source-map'return config;
};

总结:

配置完后需要重新 npm run build! 总的来说 方法三最方便。
如果你 没暴露 wbpack配置,使用的是重写配置用方式四,倒也很轻松。

http://www.lryc.cn/news/264198.html

相关文章:

  • fdisk工具详解
  • 【蓝桥杯选拔赛真题81】Scratch旅游相册 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • 水平居中、垂直居中、水平垂直居中
  • flex布局换行后出现间隙问题
  • RPC(3):HttpClient实现RPC之GET请求
  • PHP函数里面写JQ CSS HTML的写法案例
  • 爬虫工作量由小到大的思维转变---<第十八章 Scrapy请求处理与返回策略>
  • 【免费直播今天下午!】见微知著 唤醒视觉:机器视觉与成像应用解决方案,诚邀您的参与!
  • 智商均值回归
  • ChatGPT助力Excel数据分析:让你的工作事半功倍!
  • 多表插入、删除操作(批量)——后端
  • Java操作Word修订功能:启用、接受、拒绝、获取修订
  • 什么是数据仪表板?数据可视化仪表盘怎么制作?
  • HiveServer2
  • YOLOv8改进 | 2023注意力篇 | HAttention(HAT)超分辨率重建助力小目标检测 (全网首发)
  • IDEA Community html文件里的script标签没有syntax highlighting的解决方案
  • 如何获取旧版 macOS
  • vp与vs联合开发-Ini配置文件
  • Ethernet/IP 之IO 连接简要记录
  • 【python基础】-- yarn add 添加依赖的各种类型
  • @Autowired搭配@interface注解实现策略模式
  • Linux CentOS下Composer简单使用
  • Mysql-干净卸载教程
  • 纵横字谜的答案 Crossword Answers
  • cpp_04_类_对象_this指针_常对象_常(成员)函数
  • AttributeError: module ‘_winapi‘ has no attribute ‘SYNCHRONIZE‘解决方案
  • 多媒体互动橱窗设计如何改变内容展示形式?
  • flutter自定义地图Marker完美展示图片
  • no module named cv2 、numpy 、xxx超全解决方案
  • BSWM 模式管理(二)ESH