Why does "npm install" prefix my packages with "node_modules" in my "package-lock.json" file?
Asked Answered
S

2

11

I've never had this happen before, but now, when I npm install in the root directory of my app, my package-lock.json updates all the packages with node_modules/. What is causing this?

Here's what I get before running npm i

before running command

Here's what I get after running npm i

after running command

Serval answered 19/1, 2021 at 0:0 Comment(2)
Did something change recently in package.json with ajv and amqp-connection-manager?Lipetsk
@MilanTenk this happens with ALL my packages - not just these two. It happens when I npm install or npm uninstall (anything that updates package-lock.json) locally on my machine. When I do so on my company's ec2 instances, it doesn't happen.Serval
M
9

What version of npm (and node) are you using?

npm v7 has been released, and it ships with node v15. That introduces some big changes due to the new support for workspaces... which introduces package-lock.json v2.

I'm going to go out on a limb: I suspect you're running npm v7 locally and your EC2 instances are not.

https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/

Maples answered 21/1, 2021 at 0:32 Comment(1)
Thank you Nicholas, that was precisely the problem. I was running the newest version of node. I downgraded with nvm use v15.6.0 and npm i no longer prefixes my packages with node_modules/Serval
S
3

I was able to reproduce issue from OP's question on my computer by running

npm install -g npm@7

and then running

npx create-react-app my-app

Inspecting my-app/package-lock.json confirmed changed behaviour.

I then downgraded npm to 6.14.11 using

npm install -g npm

Deleted folder my-app and repeated create-react-app step above. This time, inspecting my-app/package-lock.json confirmed "normal" behaviour.

Silvestro answered 21/1, 2021 at 1:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.