create-react-app build 打包隐藏源码

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

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


App.js

解决办法

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

GENERATE_SOURCEMAP=false

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

原理

为了探究原理,执行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文件来配置环境变量,所以就有了上面的操作。

更多关于环境变量的信息可查看Adding Custom Environment Variables

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容