【问题标题】:Do we need to install all plugins from scratch in Gatsby?我们需要在 Gatsby 中从头开始安装所有插件吗?
【发布时间】:2021-04-26 08:17:42
【问题描述】:
当我们从 bitbucket 或任何其他平台克隆任何存储库时,我们没有获得节点模块。
因此,当我们运行gatsby develop 时,它会显示“加载本地开发命令时出现问题。 Gatsby 可能未安装在您站点的 node_modules 中。也许运行 npm install'。
但是当我运行npm install 时会花费很多时间,然后错误就会出现“SOCKET_ERR”。
那么是因为 node_modules 没有克隆还是我需要从头开始安装所有插件?
【问题讨论】:
标签:
gatsby
node-modules
npm-install
gatsby-plugin
local-node-modules
【解决方案1】:
node_modules 绝对不能上传到存储库,永远不要。因此,回答您的问题,是的,每次克隆存储库时,您总是需要安装依赖项。为什么?
有很多原因,但本质上是:
-
node_modules 很重,因此不值得将那一堆依赖项上传到存储库中。您节省了数百 MB。
-
node_modules 与运行环境(操作系统、依赖版本、节点、版本等)严格相关,因此每次运行 npm install 时,您都在安装每个模块的正确版本。以相反的方式进行操作会导致整个项目出现问题
- 它将使您免于合并中的多个 git 冲突。如果更改依赖项,则拉取请求或合并将涉及更多文件。工具变得更慢,甚至决定不显示完整的差异(例如 GitHub)
- 不提交(和推送)
node_modules 意味着您需要在package.json(和package-lock.json)中列出所有模块作为强制性步骤。这很好,因为您可能没有足够的努力去做,如果您不这样做,一些 npm 操作可能会中断。
理想情况下,完整的安装过程应该只发生在第一次(或者由于某些配置问题或冲突而不得不删除node_modules 时)。
关于您的SOCKET_ERR,它可能有多个来源,但有时是由node-gyp 依赖引起的(与Python版本有关),请尝试重新安装或重新构建。