gatsby - 我们需要在 Gatsby 中从头开始安装所有插件吗?
问题描述
当我们从 bitbucket 或任何其他平台克隆任何存储库时,我们没有获得节点模块。因此,当我们运行gatsby develop
它时,它会说“加载本地开发命令时出现问题。Gatsby 可能未安装在您站点的 node_modules 中。也许运行 npm install'。但是当我运行npm install
它需要很多时间时,错误就会出现“SOCKET_ERR”。那么是因为 node_modules 没有克隆还是我需要从头开始安装所有插件?
解决方案
node_modules
绝对不能上传到存储库,永远不要。因此,回答您的问题,是的,每次克隆存储库时,您总是需要安装依赖项。为什么?
有很多原因,但本质上是:
node_modules
很重,因此不值得将一堆依赖项上传到存储库中。您正在节省数百 MB。node_modules
与运行环境(操作系统、依赖版本、节点、版本等)严格相关,因此每次运行 npm install 时,您都在安装每个模块的正确版本。以相反的方式进行操作会导致整个项目出现问题- 它将使您免于合并中的多个 git 冲突。如果更改依赖项,则拉取请求或合并将涉及更多文件。工具变得更慢,甚至决定不显示完整的差异(例如 GitHub)
- 不提交(和推送)
node_modules
意味着您需要在package.json
(andpackage-lock.json
) 中列出所有模块作为强制性步骤。这很好,因为您可能没有足够的努力去做,如果您不这样做,一些 npm 操作可能会中断。
理想情况下,完整的安装过程应该只发生在第一次(或者node_modules
由于某些配置问题或冲突而不得不删除时)。
关于你的SOCKET_ERR
,它可能有多个来源,但有时是由node-gyp
依赖关系引起的(与 Python 版本有关),请尝试重新安装或重新构建。
推荐阅读
- javascript - 使用 Maven 进行应用程序设置
- mysql - 环回 mysql 查询上的聚合
- c++ - std::map::find 和 std::map::end 很奇怪
- flexbox - 为什么页脚不底部对齐
- jquery - URL() 使用 JQuery ajax 返回 404
- angular - 角度异步管道在多个地方可观察到多次请求
- reactjs - 无法从 mapStateToProps 获取状态(未定义)
- android - 通过房间数据库处理一对多关系的问题
- android - 带有 viewpager 和图表的 Nestedscroll
- c# - 点击按钮后如何进行自动化测试?