Npm 和 git 需要发布 "node_modules"(依赖项)?

Npm and git need to publish "node_modules" (dependencies)?

我对在 npm 和 git 上发布的良好做法有疑问。

我有一些包需要(依赖)一个模块(例如:bootstrap)。

当我使用 "npm install bootstrap" 的方法创建 package.json 时,它会在我的目录中创建一个带有 bootstrap 的 nodes_modules,但是如果我只是将 "dependencies bootstrap" 在 package.json 里面没有做 "npm install bootstrap" 它不会创建 "nodes_modules".

在这两种情况下,在我发布我的包(使用 npm publish)之后,当我在我的 prod 应用程序上安装包时,"dependencies" 正常调用 "bootstrap"(有或没有我的 "nodes_modules" 我创建包的地方)。 所以我的第一个问题是我不明白用 "nodes_modules" 还是不用发布我的包更好? (因为在实践中这两种情况都有效..)

此外,如果我选择使用 "nodes_modules" 发布我的包,在我想提交我的包并使用 git 推送它之后,它会创建 "nodes_modules" 和 "package-lock.json" 在我的 git 集线器存储库上。 所以我的第二个问题是:在 github 上保留 "nodes_modules" 和 "package-lock.json" 是个好习惯吗?或者最好忽略它们?

感谢您的帮助

您不应在您的存储库中包含 node_modules 或发布它。

您应该在您的代码库中包含 package.json 并发布它;我不知道您如何避免这种情况,因为这是您分发的软件包的基本描述。

根据文档,您应该将 package-lock 文件签入源代码管理,但它没有发布。我觉得这种用法很奇怪,但它似乎是预期的用法。