网站搜索

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"
      }
    ]
  }
}

一切都已部署,“几乎如预期”,但有两个警告:

  1. 在 Chrome 开发者工具/Sources 标签中,我的整个 JS 代码库都列出来了,没有任何压缩或混淆!
  2. 我的字体没有被部署,因为媒体文件夹似乎没有传输

该结构看起来完全不像包含媒体的 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