问题描述
这是我关于stackoverflow的第一篇文章。我之所以写信,是因为我找不到问题的明确答案。我不知道标题是否是正确的放置方式,但这就是我的目的。
情况:
我正在创建一个带有react的单页应用程序,并打算用node.js和express.js构建后端,但是目前它只是个react。我使用create-react-app
创建了项目,并使用Firebase进行托管。
将firebase.json
文件中要部署的文件夹设置为build
。因此,当我要将Web应用程序部署到firebase时,首先使用npm run build
命令创建将要部署的构建文件夹。
然后,当我访问我的网站时,打开chrome开发人员工具并点击源,我可以在static
文件夹中看到我的所有文件。我只是以格式化它的方式来查看它,就像我在代码编辑器中一样。所有组件。我的整个文件夹结构。基本上,我的应用程序的整个代码都是完整可见的。
我有点震惊和困惑,所以我检查这是否正常。我去过youtube或twitter等大型网站,但在其源文件夹中几乎找不到任何东西。当我查看Twitter的来源时,它确实有一些文件,这些文件只是纯文本并且可以打开javascript,但没有很多。而且文件夹结构也不可见。我需要使用Ctrg + P查看文件。大多数文件看起来也不同,等等。
最好只是在开发工具中查看Twitter的源代码部分。我不太了解自己所看到的内容,但是与网站来源相比,我发现它有所不同。
他们的webpack不会以某种方式将捆绑包映射到可读的代码中。我在build文件夹中的捆绑软件被精确映射到捆绑之前的状态。至少在我看来就是这样。
简单而简短:我网站的资源按原样显示所有内容(所有文件),所有人都可以看到。大型网站的来源并没有这样做。他们的被某种程度上隐藏了。而且我想知道他们做了什么,他们是如何做到的,以及我如何可以做到这一点。
我已经看到很多人说,不存在安全风险并不重要,我对混淆也有所了解,但我相信他们也可以做其他事情。
我也想强调一下,这与我是否需要这样做无关。我想这样做,但现在不知道如何或怎样做。我没找到任何地方可以完全解决这个问题,所以我真的不知道它是如何完成的。
我很感谢我能得到的任何帮助。
解决方法
将GENERATE_SOURCEMAP=false
放入package.json
scripts -> builds
中,然后运行npm run build
。希望它能工作。
"scripts": {
"build": "GENERATE_SOURCEMAP=false react-scripts build"
}