javascript - 关于部署前端项目的困惑
问题描述
我是 Web 开发的新手,并且通过与 Firebase 和 Cloud Firestore 一起做一个小型 React 项目来学习 React。我使用的捆绑器是 Parcel。
据我了解,一个前端项目,在存在之后parcel build
,所谓的生产就绪dist
文件应该默认驻留在自动生成的文件夹中。我可以使用 firebase 来部署它。我确实做到了。但是,这是我在部署项目后遇到的一些问题。
- 我认为 Parcel 将通过将我拥有的所有 js 文件缩小到一个压缩的 js 文件来构建我的项目(除非我明确写
parcel build index.html --no-minify
)。所以部署的项目应该只附带一个 js 文件,而不需要将每个 React 组件的 js 文件传递给客户端的开销。但奇怪的是,我通过Sources
从开发工具检查我部署的项目找到了所有的 js 文件。这是屏幕截图。我对捆绑的理解是错误的吗?还是仅仅因为 Parcel 的配置已关闭? - 我还通过从我部署的项目的开发工具中
firebaseConfig.js
检查找到了我的文件,其中包含我的项目的文件。我不知道这是否安全,我也不知道如何避免这种情况。考虑到我正在使用 Firebase 的 Web SDK,并且我没有为该项目设置自己的服务器,在这种情况下,这种暴露你的 appidKey 是不可避免的吗?Sources
appid key
- 最后,在我之后
Parcel build
,我认为缩小的 js 文件会很小。但它们仍然很大。该.js.map
文件几乎是 8 MB。这是正常的吗?
解决方案
我发现我的 firebaseConfig.js 文件在那里,暴露你的 appidKey 是不可避免的/安全的吗?
正如Renaud Tarnec链接这个答案向公众公开 Firebase apiKey 是否安全?,从那个答案以及我的知识和以前的经验来看,是的,它是安全的,而且是不可避免的。将使用您的应用程序的用户将需要该配置来知道要连接到什么。
如果您想了解更多信息,可以阅读我对这个问题的回答,这与您对 API 密钥的问题类似,并且您可以看到没有办法只是“模糊”您拥有的 api 密钥那里https://stackoverflow.com/a/55196666/4229159
在我构建 Parcel 之后,我认为缩小的 js 文件会很小。但它们仍然很大。.js.map 文件几乎是 8 mb。这是正常的吗?
尽管我已经很长时间没有使用 parcel 阅读文档了,但NODE_ENV=production
运行 build 命令时似乎您可能会丢失该标志
它应该看起来与此类似NODE_ENV=production parcel build entry.js
这也应该解决第一点的问题,即检查时文件过多。
即使parcel watch
您在开发时用于提供文件,它也不会改变,最好让它们都像这样,未缩小且不丑化,这样当您的 HTML、JS 或CSS
此外,如果您正在开发,我建议您使用这种方式,一旦您在前端更改某些文件,它就会自动更新parcel watch
。parcel build
推荐阅读
- ios-simulator - Apple TV 模拟器 - Siri Remote 未出现
- javascript - 为什么这段代码返回未定义的值?
- html - 我的导航栏没有保持在顶部,它会一直滚动,如何让它保持在顶部
- flutter - Fluttter 在真机上运行和调试
- javascript - 为什么我的推送到数组函数返回为空?
- maximo - 获取已保存资产查询列表作为值的动态域?
- c++ - Sobel算法无库,灰度输出
- verilog - Implementing between sequential and combinational logic in HDL
- ios - 如何使用 API 模型数据数组显示 tableview 部分
- java - 为什么执行 Prepared Statement 时会出现 java.sql.SQLSyntaxErrorException?