I deleted it by accident and have made many changes to package.json
since. An npm install
or npm update
do not generate package-lock.json
anymore. I tried clearing my npm cache and my nvm cache, but nothing seems to be working. I tried it on several versions of Node.js (6.10.3 Node.js - 3.10.10 npm is what I would like it to work on), and it doesn't work on any.
Is there a way to force npm to generate the package-lock.json
file?
This question is related to
node.js
npm
package-lock.json
When working with local packages, the only way I found to reliably regenerate the package-lock.json file is to delete it, as well as in the linked modules and all corresponding node_modules folders and let it be regenerated with npm i
package-lock.json is re-generated whenever you run npm i
.
As several answer explained the you should run:
npm i
BUT if it does not solve...
Check the version of your npm
executable. (For me it was 3.x.x which doesn't uses the package-lock.json
(at all))
npm -v
It should be at least 5.x.x (which introduced the package-lock.json file.)
To update npm
on Linux, follow these instructions.
For more details about package files, please read this medium story.
By default, package-lock.json
is updated whenever you run npm install
. However, this can be disabled globally by setting package-lock=false
in ~/.npmrc
.
When the global package-lock=false
setting is active, you can still force a project’s package-lock.json
file to be updated by running:
npm install --package-lock
This command is the only surefire way of forcing a package-lock.json
update.
This is answered in the comments; package-lock.json
is a feature in npm
v5 and higher. npm shrinkwrap
is how you create a lockfile in all versions of npm
.
If your npm version is lower than version 5 then install the higher version for getting the automatic generation of package-lock.json.
Example: Upgrade your current npm to version 6.14.0
npm i -g [email protected]
You could view the latest npm version list by
npm view npm versions
Source: Stackoverflow.com