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.json 和 package-lock.json,稍后您可以更改/删除不需要的依赖项你的项目。
现在运行 npm install 命令。
瞧!!,你明白了。
【讨论】:
以上是关于npm notice 创建了一个锁文件作为 package-lock.json。你应该提交这个文件的主要内容,如果未能解决你的问题,请参考以下文章
为啥我创建的 npm 包在安装它作为另一个模块的依赖项时有一个 node_modules 文件夹?
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.