目前在写一个项目生成工具,前端 用的vue的nodejs 项目。我生成的项目其他的问题都没有,但是package.json 里面的 name 和version 是根据当时的项目动态生成的,结果发现动态生成的 name ,version 修改后 npm install 无法执行,报错:npm notice created a lockfile as package-lock.json. You should commit this file.npm WARN Invalid version: "1.0"npm WARN webapp No descriptionnpm WARN webapp No repository field.npm WARN webapp No README datanpm WARN webapp No license field.不改名字,不改版本是可以的,求大神指点一二{"name": "test","version": "1.0","private": true}
1 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
package-lock.json
用于签入源代码管理。如果你使用npm5(npm install -g npm@latest
),你可以在命令行中看到以下加粗文字内容:created a lockfile as package-lock.json. You should commit this file.
由npm help package-lock.json
得来:
对于npm修改node_modules树或package.json的任何操作,将自动生成package-lock.json。 它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖性更新如何。
这个文件旨在被提交到源代码库,并提供各种用途:
描述一个依赖树的单个表示,这样就保证了成员、部署和持续集成能够完全安装相同的依赖项。
为用户提供一个工具,使其能够“穿越”node_modules的先前状态,而无需提交目录本身。
通过可读的源代码控制扩展来促进树的更大可视性。
并优化安装过程,允许npm跳过已安装的软件包重复的元数据解析。
关于package-lock.json
的一个关键细节是它不能被发布,并且如果在顶层包之外的任何地方被发现,它将被忽略。它与npm-shrinkwrap.json(5)
共享格式,它基本上是相同的文件,但允许发布。除非部署CLI工具或以其他方式使用发布过程来生产生产包,否则不建议这样做。
如果package-lock.json
和npm-shrinkwrap.json
都存在于一个包的根目录下,package-lock.json
将被完全忽略。
- 1 回答
- 0 关注
- 4315 浏览
添加回答
举报
0/150
提交
取消