Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript npm和Thread:package.json是否优先于lockfile? 让我们考虑NPM 5.3.0+ < /P>_Javascript_Node.js_Npm_Yarnpkg - Fatal编程技术网

Javascript npm和Thread:package.json是否优先于lockfile? 让我们考虑NPM 5.3.0+ < /P>

Javascript npm和Thread:package.json是否优先于lockfile? 让我们考虑NPM 5.3.0+ < /P>,javascript,node.js,npm,yarnpkg,Javascript,Node.js,Npm,Yarnpkg,假设我刚刚在空目录中创建了package.json,然后运行npmi。然后我在package.json中编辑了包的版本。此时,package.json与package lock.json不一致 问题:如果我再次运行npmi会发生什么?哪一份文件是真相的来源?在npm文档中,我只发现了一个模糊的语句“无论何时运行npm安装,npm都会生成或更新您的包锁” 同样的问题是纱线 我在使用纱线时遇到了类似的问题。以下是一些可能对你有帮助的想法 如果存在warn.lock并且足以满足package.json

假设我刚刚在空目录中创建了
package.json
,然后运行
npmi
。然后我在
package.json
中编辑了包的版本。此时,
package.json
package lock.json
不一致

问题:如果我再次运行
npmi
会发生什么?哪一份文件是真相的来源?在npm文档中,我只发现了一个模糊的语句“无论何时运行npm安装,npm都会生成或更新您的包锁”


同样的问题是纱线

我在使用
纱线时遇到了类似的问题。以下是一些可能对你有帮助的想法

如果存在warn.lock并且足以满足package.json中列出的所有依赖项,则会安装warn.lock中记录的确切版本,并且warn.lock将保持不变。纱线不会检查新版本

如果缺少warn.lock,或者不足以满足package.json中列出的所有依赖项(例如,如果您手动向package.json添加依赖项),warn将查找满足package.json中约束的最新可用版本。结果将写入warn.lock

哪个文件是真相的来源?

这取决于warn.lock中第三方软件包的版本是否满足软件包的要求
package.json中的版本限制。如果是,则swarn.lock文件是“真相的来源”;否则,它应该是package.json。

好吧,这些语句说明了一切;npm将生成或更新锁文件。它将根据package.json文件的内容执行此操作,因为它会将要更新/生成的包列表拉入锁文件。@MikeMcCaughan同样的文档说“如果包有包锁或收缩包装文件,依赖项的安装将由它驱动”,这让我感到奇怪。另外:这些可能是补充你的问题的好东西,这样其他人就不必重复你显然已经做过的同样的研究了。。。您可能对和的答案感兴趣