为什么每次从 Github 拉取代码后都要删除 node_modules 文件夹

3

我知道这可能是一个简单的问题,但我很好奇为什么每次从我的Github存储库中拉取后都必须删除node_modules文件夹。 当我尝试执行“npm start”时,在从存储库中拉取后,我会收到以下错误提示,只有在删除node_modules文件夹并执行“npm install”后,问题才会暂时解决。

sh: react-scripts: command not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT...

我注意到在推送时,该文件夹也会显示为更改的一部分(大约2,800个文件)。这种情况下,是否需要在.gitignore中忽略node_modules文件夹以防止这种情况发生?同时,如果能解释一下为什么会出现这种情况的话,那就更好了。谢谢。

作为一般惯例,请勿提交 node_modules。NPM 已经使用 package-lock.json 来确保正确的版本控制。话虽如此:如果您每次都必须删除 node_modules,则需要修复您的 npm 安装,因为您不应该这样做。使用 npm cache verify 告诉 npm 自行修复,如果仍无法解决问题,则需要彻底卸载并重新安装 npm。 - Mike 'Pomax' Kamermans
@Mike'Pomax'Kamermans,我已经按照您的建议去做了。我也会继续关注问题是否仍然存在,并检查npm。感谢您的解释和提示!保持安全和健康。 - James Hammon
2个回答

5
你应该将 node_modules 目录添加到 .gitignore 中,以避免将其推送到存储库中。然后在其中删除它。 并且 node_modules 应该只在你的开发环境中生成。

谢谢你的回答!这个方法很有效!保持安全,祝一切顺利! - James Hammon

4
创建一个名为.gitignore的文件,并将以下代码粘贴到其中(注:您可以在所有项目中使用此文件,它包含几乎所有扩展名和文件夹,在将项目推送到Github时需要忽略它们):
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.log
*.rej
*.swo
*.swp
*.vi
*~
*.sass-cache
node_modules/
.tmp/
.vs

# OS or Editor folders
.DS_Store
Thumbs.db
.cache
.project
.settings
.tmproj
*.esproj
nbproject
*.sublime-project
*.sublime-workspace
*.komodoproject
.komodotools
_notes
dwsync.xml
.sass-cache
.idea

1
太棒了!我已经将它添加到我的.gitignore文件中。非常感谢你的回答!保持安全,祝一切顺利。 - James Hammon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接