Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[BUG] npm install creates directories and empty package.json #7892

Open
2 tasks done
brianpmaher opened this issue Nov 4, 2024 · 9 comments · May be fixed by #7960
Open
2 tasks done

[BUG] npm install creates directories and empty package.json #7892

brianpmaher opened this issue Nov 4, 2024 · 9 comments · May be fixed by #7960
Labels
Bug thing that needs fixing Needs Triage needs review for next steps

Comments

@brianpmaher
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

This issue exists in the latest npm version

  • I am using the latest npm

Current Behavior

Running npm install from a directory without a package.json creates a empty package.json file.
Additionally, running npm --prefix some-directory install will also create the directory.

Expected Behavior

100% of the time I have done this, it has been on accident and I then have to go and delete the directory and/or the package.json file it creates.

I think it would be better to add an error message output indicating that there is no package.json present in the directory or the directory doesn't exist, and then suggesting I run npm init instead.

Steps To Reproduce

  1. Create a new temporary directory wherever mkdir temp
  2. Enter the directory cd temp
  3. npm --prefix temp2 install

Environment

  • npm: 10.8.3
  • Node.js: 22.9.0
  • OS Name: MacOS Sonoma 14.6.1
  • System Model Name: Apple M3 Pro
@brianpmaher brianpmaher added Bug thing that needs fixing Needs Triage needs review for next steps labels Nov 4, 2024
@Kyle-Ignis
Copy link

Agreed. Please fix.

@kchindam-infy
Copy link

@brianpmaher I have tested the scenario where running npm install in an empty directory does not create a package.json or any other files, which seems to align with expected behavior npm generally needs a package.json to install dependencies.

@Kyle-Ignis
Copy link

Screenshot 2024-11-08 at 11 51 37 AM

i dont believe this what we expect to happen

@brianpmaher
Copy link
Author

I misspoke, it creates a package-lock.json, not package.json and it does also create a directory when using --prefix

@pat-in-a-hat
Copy link

pat-in-a-hat commented Nov 8, 2024

a similarly frustrating experience is if you npm uninstall a package in the wrong directory. npm will also go ahead and build a package-lock.json and an empty package.json.

desired behavior would be for npm to warn you that no package.json file was found in that directory

@pat-in-a-hat
Copy link

this appears to be easily reproducible.

Steps To Reproduce

  1. Create a new directory mkdir temp
  2. Enter the directory cd temp
  3. npm uninstall is-even

A package.json and package-lock.json file will now be present

Expected Behavior

When a user runs step 3 npm should warn that no package.json file is present then end

@Kyle-Ignis
Copy link

Screenshot 2024-11-08 at 12 28 00 PM

@Kyle-Ignis
Copy link

I would be happy to author a PR on this, especially if someone is willing to point me in the right direction just to get started.

@kchindam-infy
Copy link

@Kyle-Ignis Appreciate if you can raise the PR.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Bug thing that needs fixing Needs Triage needs review for next steps
Projects
None yet
4 participants