javascript - 使用 Firebase 部署 create react app 会在源代码标签中暴露所有 js 代码吗?
我已经通过 create react app 编译了我的应用:yarn build //代码已按预期进行压缩和混淆
然后我通过 firebase serve 和 firebase deploy 部署了该应用。
我的 firebase.json:
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "build",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
一切都已部署,“几乎如预期”,但有两个警告:
- 在 Chrome 开发者工具/Sources 标签中,我的整个 JS 代码库都列出来了,没有任何压缩或混淆!
- 我的字体没有被部署,因为媒体文件夹似乎没有传输
该结构看起来完全不像包含媒体的 build 文件夹……(字体所必需):
我是不是设置错了什么,部署了错误的文件夹,或者可能没有忽略一些我应该忽略的东西?暴露整个未压缩或未混淆的 js 堆栈看起来非常“不安全”……
再次,像往常一样,任何和所有的指导都非常感激!
答案#1
强烈建议参考 create-react-app GitHub 上关于此问题的讨论,但作为一个快速解决方法,您可以将以下内容添加到您的 package.json 脚本中:
"scripts": {
...
"build": "npm run build-css && react-scripts build && yarn run delete-maps",
"delete-maps": "rm ./build/static/js/*.map && rm ./build/static/css/*.map",
...
}
然而,这在短期内将从开发者工具的源代码标签中删除你所有的源代码...
答案#2
在你的构建目标前加上 GENERATE_SOURCEMAP=false 也可以(这显然不会生成 sourcemap)。在 package.json 文件中。
GENERATE_SOURCEMAP=false react-scripts build

