博客
关于我
create-react-app build 打包隐藏源码
阅读量:160 次
发布时间:2019-02-28

本文共 1003 字,大约阅读时间需要 3 分钟。

在使用create-react-app时,打包生产环境npm run build,浏览器打开后仍然是可以看到源码的。

在这里以新建一个默认项目为例:

 

App.js

解决办法一:

项目根目录新建.env文件,内容如下:

 

GENERATE_SOURCEMAP=false

package.json:

"scripts": {    "start": "dotenv -e .env.frm react-app-rewired start",    "start:pro": "dotenv -e .env.frm -e .env.pro react-app-rewired start",    "build": "dotenv -e .env.frm -e .env react-app-rewired build",    "build:pro": "dotenv -e .env.pro -e .env.frm react-app-rewired build",    "test": "react-app-rewired test --env=jsdom",    "eject": "react-scripts eject"  },

(build中引入.env文件,多个env文件用 -e 隔开),需要下载dotenv-cli

yarn add dotenv-cli

然后重新打包,浏览器打开后就看不到源码啦。

解决方法二:

原理

为了探究原理,执行eject后,可以看到webpack配置中有这么一段

// Source maps are resource heavy and can cause out of memory issue for large source files.const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';

这里的process.env.GENERATE_SOURCEMAP控制着是否捎带源码。所以我们可以配置环境变量GENERATE_SOURCEMAP=false即可。

当执行build时,将按顺序优先寻找.env.production.local, .env.production, .env.local, .env文件来配置环境变量,所以就有了上面的操作。

结果如下:

=

转载地址:http://cead.baihongyu.com/

你可能感兴趣的文章
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>
nodejs-mime类型
查看>>
NodeJs——(11)控制权转移next
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
nodejs下的express安装
查看>>
nodejs与javascript中的aes加密
查看>>
nodejs中Express 路由统一设置缓存的小技巧
查看>>
nodejs中express的使用
查看>>
Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
查看>>
Nodejs中的fs模块的使用
查看>>
NodeJS使用淘宝npm镜像站的各种姿势
查看>>
NodeJs入门知识
查看>>
nodejs包管理工具对比:npm、Yarn、cnpm、npx
查看>>
NodeJs单元测试之 API性能测试
查看>>
nodejs图片转换字节保存
查看>>
nodejs在Liunx上的部署生产方式-PM2
查看>>