当我在不同的系统上运行`npm install`时,为什么会得到截然不同的`package-lock.json`文件

Dan*_*umb 10 node.js npm package-lock.json

使用相同的git存储库,如果我删除node_modules并且package-lock.json,我的期望是每次运行npm install应生成相同的package-lock.json文件(提供或采取可能由发布者在过渡期间更新的一些模块.

我发现的是,根据我是在OSX机器上还是在Linux机器上执行此操作,我会得到截然不同的文件.

这是预期的吗?如果是这样,提交package-lock.json文件的值是什么值,因为它在其中一个系统上无效.如果没有,可能会发生什么?

Lui*_*nto 5

有些依赖项在某些平台上是可卸载的。您可能有一些可以安装在OSX机器上但不能安装在Linux上的东西。这就是为什么你每次执行时npm i,将package-lock.json被更新

例如,正如其他一些用户指出的那样,有一个软件fsevents包包对os有严格的要求

您可以在github上找到一些未解决的问题:

https://github.com/npm/npm/issues/17722

https://github.com/npm/npm/issues/18202