npm notice 创建了一个锁文件作为 package-lock.json。你应该提交这个文件

Posted

技术标签:

【中文标题】npm notice 创建了一个锁文件作为 package-lock.json。你应该提交这个文件【英文标题】:npm notice created a lockfile as package-lock.json. You should commit this file 【发布时间】:2017-11-04 18:06:33 【问题描述】:

我一直在尝试使用npm install express 加载 express 的骨架。它输出以下行:

npm 通知创建了一个锁文件作为 package-lock.json。你应该提交这个文件。

我应该怎么做才能自动加载模板ejs和css引擎?

【问题讨论】:

【参考方案1】:

是的。您应该将此文件添加到您的版本控制系统中,即您应该提交它。

此文件旨在提交到源存储库中

你可以阅读更多关于它是什么/它做什么here:

package-lock.json 会自动为 npm 修改 node_modules 树或 package.json 的任何操作生成。它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖项更新如何。

【讨论】:

我如何提交文件 我假设你在谈论 git:1.git add -A 2.git commit -m "text here" 3.git push -u origin master 信息应该更清楚,例如“您应该将此文件添加到您的版本控制系统中。” @StephanWindmüller 如果没有版本控制(目前,我没有将node用于个人用途),我可以删除package-lock.json文件吗? @MikeWilliamson "如果没有版本控制(目前,我没有将 node 用于个人用途以外的任何用途)" -- 拥有超过 30 年的专业经验编程经验,我说...总是使用版本控制。总是。即使是小型的个人使用项目。备份和版本控制是两个不同的东西。【参考方案2】:

您可以更新现有的 package-lock.json 文件而不是创建新文件。只需将版本号更改为其他版本即可。

 "name": "theme","version": "1.0.1", "description": "theme description"

【讨论】:

这对我有用,因为 ng 脚手架创建的项目,版本默认为 0.0.0【参考方案3】:

是的,您应该这样做,因为它会锁定您在应用程序中使用的每个包的版本,并且当您运行 npm install 时,它会在您的 node_modules 文件夹中安装完全相同的版本。这很重要,因为假设您在应用程序中使用 bootstrap 3,并且如果您的项目中没有 package-lock.json 文件,那么npm install 将安装最新的 bootstrap 4,并且您的整个应用程序 ui 将因版本而中断不匹配。

【讨论】:

【参考方案4】:

还应该注意,关于 package-lock.json 的一个关键细节是它不能被发布,如果在***包以外的任何地方找到它都会被忽略。它与 npm-shrinkwrap.json(5) 共享格式,本质上是相同的文件,但允许发布。 除非部署 CLI 工具或以其他方式使用发布过程来生成生产包,否则不建议这样做。

如果 package-lock.json 和 npm-shrinkwrap.json 都存在于包的根目录中,则 package-lock.json 将被完全忽略。

【讨论】:

【参考方案5】:

是的,为您的项目使用版本控制系统是明智之举。 无论如何,专注于您的安装警告问题,您可以尝试从根项目文件夹而不是外部启动 npm install 命令,因此安装步骤只会更新现有的 package-lock.json 文件而不是创建新文件。 希望这会有所帮助。

【讨论】:

【参考方案6】:

检查C:\Windows\system32处的package-lock.json文件。

如果不存在,以管理员身份运行cmd并执行以下命令:

Set EXPO_DEBUG=true
npm config set package-lock false
npm install

【讨论】:

【参考方案7】:

通过更改 package.json 文件中的版本并更改包名称来解决此问题,最后删除 package-lock.json 文件

【讨论】:

【参考方案8】:

如果这是 Dockerfile 的输出,那么您不需要/不需要提交它。

但是您想要标记基本图像和任何其他贡献的图像/应用程序。

例如

FROM node:12.18.1

【讨论】:

【参考方案9】:

我遇到了同样的问题,解决方案是重命名 package.json 中的 name 字段(删除空格)

【讨论】:

【参考方案10】:

只需按照以下步骤即可解决此问题。

    从其他项目复制并粘贴 package.jsonpackage-lock.json,稍后您可以更改/删除不需要的依赖项你的项目。 现在运行 npm install 命令。

瞧!!,你明白了。

【讨论】:

以上是关于npm notice 创建了一个锁文件作为 package-lock.json。你应该提交这个文件的主要内容,如果未能解决你的问题,请参考以下文章

为啥我创建的 npm 包在安装它作为另一个模块的依赖项时有一个 node_modules 文件夹?

NPM 锁文件不能正确处理传递依赖

npm notice created a lockfile as package-lock.json. You should commit this file.

npm notice created a lockfile as package-lock.json. You should commit this file.

npm notice created a lockfile as package-lock.json. You should commit this file.

如何使用 postinstall 编辑 package.json