I accidentally deleted my package-lock.json file. npm install is not generating a new one. How do I get npm to recreate this file.
There might be a file called .npmrc
which can contain
package-lock=false
which will cause the package lock file to not be generated.
In theory you could also have turned on npm config set package-lock false
globally (change to true
to turn on again), but that's less likely to happen unintentionally.
npm ci
which fails because there's no package-lock file - so why would the maintainers add this setting to npmrc? –
Gaskin The package-lock.json file was introduced in npm v5, so the steps you need to take to regenerate package-lock.json depend on which version of npm you're using.
FYI. Let's verify what version of node and npm.
npm -v
prints: x.x.x
node -v
prints: x.x.x
I believe for package-lock.json is auto-generated if the 2 conditions npm version > 5.x.x and node version > 7.x.x are met
Then, try the following steps depending on which version you have:
npm v5+:
Regenerate the package-lock.json by running npm install
. You may also regenerate the file without actually downloading dependencies by using npm install --package-lock-only
npm v4.x & earlier:
- Generate a npm-shrinkwrap.json by running
npm shrinkwrap
. This file has the same format as package-lock.json and achieves essentially the same purpose in earlier versions of npm (see https://docs.npmjs.com/files/package-lock.json and https://docs.npmjs.com/files/shrinkwrap.json for detailed information on this point) - Rename the npm-shrinkwrap.json to package-lock.json
npm install
here. –
Eudy .npmrc
could have package-lock=false
, which our project happened to have. –
Eudy To resolve this issue I have tried below mentioned things and it worked for me :
Make sure your package-lock globally enabled, you can enable it using:
npm config set package-lock true
To make sure your .npmrc is not blocking the creation of package-lock file, set this to your .npmrc
echo 'package-lock=true' >> .npmrc
note: package-lock.json is automatically generated for any operations where npm modifies either the node_modules tree, or package.json for npm -v > 5.x.x.
check your npm version: npm -v
update your npm to latest version using:
npm install -g npm@latest
npm i -g npm-upgrade
@will
Make sure you are in the right folder in the command line (use pwd
in Linux/macOS to get the current path you're in).
I've run npm install
many times, just to find out later I was doing it in the wrong folder.
I was also facing the same issue
I just removed the package-lock=false
from .npmrc and now it is creating the lock file
If your npm version is <5 you will have a shrinkwrap.json
file created when running npm install.
Otherwise package-lock
will be created on npm versions 5 and above.
npm i
for me. Using node 6.12.2 npm 3.10.10 –
Ragnar shrinkwrap.json
most probably some setting. But it's worth checking if there is such a file if you can't find the package-lock.json
–
Juarez © 2022 - 2024 — McMap. All rights reserved.
npm
only creates/updates the lock file when it modifies yournode_modules
folder, so in theory you could delete yournode_modules
folder, runnpm i
and it should regenerate the file for you – Mozellamozellepackage-lock=false
. This is another reason whypackage-lock.json
might not exist. – Bootstrap.gitignore
. I accidentally hadpackage-lock.json
in the.gitignore
somehow and becausepackage-lock.json
wasn't showing up in thegit status
it was throwing me off. – Nurturepackage.json
in the subfolder that my current working directory is. – Behest