3 回答
TA贡献1812条经验 获得超5个赞
我不检查node_modules
git时最担心的是,在未来10年内,当您的生产应用程序仍在使用中时,npm可能就不在了。否则npm可能会损坏;或维护者可能决定从其存储库中删除您依赖的库;或者 否则您使用的版本可能会被剪裁掉。
可以通过Maven等回购管理器来缓解这种情况,因为您始终可以使用自己的本地Nexus或Artifactory来维护使用的软件包的镜像。据我了解,npm不存在这样的系统。像Bower和Jamjs这样的客户端库管理器也是如此。
如果您已将文件提交到自己的git仓库中,则可以根据需要对其进行更新,并且您具有可重复构建的舒适性,并且知道您的应用不会因为某些第三方操作而中断。
TA贡献1864条经验 获得超6个赞
你应该不包括 node_modules在.gitignore(或者说你应该包括 node_modules在源部署到Heroku的)。
如果node_modules:
存在,然后npm install将使用这些供应的库,并使用重建任何二进制依赖项npm rebuild。
不存在,则npm install必须自己获取所有依赖项,这会增加时间来进行编译。
有关这些确切步骤,请参见Node.js buildpack源。
但是,原始错误似乎是npm和的版本之间不兼容node。始终根据此指南明确设置engines您的部分是一个好主意,以避免出现以下类型的情况:packages.json
{
"name": "myapp",
"version": "0.0.1",
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
}
}
这将确保开发人员/产品的价格均等,并减少将来发生这种情况的可能性。
- 3 回答
- 0 关注
- 582 浏览
添加回答
举报