我不小心删除了package.json
文件,并在此之后做了很多更改。现在无论是运行npm install
还是npm update
,都不会再生成package-lock.json
文件。我尝试清除了我的npm缓存和nvm缓存,但是似乎并没有起作用。我也试过在几个Node.js版本上(我希望能在6.10.3 Node.js - 3.10.10 npm上工作),但是都不能成功。
有办法强制npm生成package-lock.json
文件吗?
我不小心删除了package.json
文件,并在此之后做了很多更改。现在无论是运行npm install
还是npm update
,都不会再生成package-lock.json
文件。我尝试清除了我的npm缓存和nvm缓存,但是似乎并没有起作用。我也试过在几个Node.js版本上(我希望能在6.10.3 Node.js - 3.10.10 npm上工作),但是都不能成功。
有办法强制npm生成package-lock.json
文件吗?
npm i --package-lock-only --only=production
好像不能实现这个功能。 - Robertpackage-lock.json
。但是,如果您运行npm i --only=production
,它应该只安装生产依赖项。因此,您的构建过程可能如下所示:安装所有依赖项,构建应用程序,删除node_modules
并仅安装生产依赖项。 - Janusz Przybylskinpm i package-lock-only
,否则您将安装一个名为“package-lock-only”的软件包。你能猜到我是怎么发现的吗? - Shawn默认情况下,每次运行 npm install
时都会更新 package-lock.json
。但是,可以通过在 ~/.npmrc
中设置 package-lock=false
来全局禁用此功能。
当启用全局 package-lock=false
设置时,仍然可以通过运行以下命令来强制更新项目的 package-lock.json
文件:
npm install --package-lock
这个命令是强制更新 package-lock.json
文件的唯一可靠方式。
package-lock.json
文件。package-lock.json
仅受npm v5+支持。 - Mathias Bynens这个问题已在评论中得到回答;package-lock.json
是 npm
v5及以上版本的一个特性。在所有版本的 npm
中,你可以使用 npm shrinkwrap
命令来创建锁定文件。
package-lock.json
文件并不完全等同于收缩包文件。 - strugeenpm-shrinkwrap.json
将被发布到注册表中,而package-lock.json
则不会。 - LJHarbnpm shrinkwrap
会生成 npm-shrinkwrap.json
文件,但是如何生成 package-lock.json
文件呢? - Vic--package-lock
选项强制实现它。 - LJHarbpackage-lock.json
,那么请检查以确保过去没有人将package-lock.json
添加到.gitignore
中!这并不是直接的答案,但也许能帮助其他花费太长时间的人。在处理本地包时,我发现可靠地重新生成 package-lock.json 文件的唯一方法是删除它,以及链接模块中的所有对应 node_modules 文件夹,并让其使用 npm i
重新生成。
npm i -g npm@6.14.0
您可以通过以下方式查看最新的npm版本列表:
npm view npm versions
package-lock.json
会自动生成,默认情况下会生成该文件。在之前的版本中,锁定文件名为npm-shrinkwrap.json
,需要手动使用npm shrinkwrap
命令来生成。请注意保持原文意思不变,使翻译更加通俗易懂。 - alexmacnode 8.6.0
和npm 5.3.0
,然后它就可以工作了。 - Big Money.gitignore
文件。我不小心把package-lock.json
加入了.gitignore
,因此package-lock.json
没有出现在git status
中,这让我感到困惑。 - Joshua Pinteryarn install --mode update-lockfile
对于 yarn,pnpm i --lockfile-only
对于 pnpm。通过 https://dev59.com/ylcP5IYBdhLWcg3wa5TQ - cachius