Npm install removes npm directory - node.js

I'm running node.js 8.9.4 on Windows 10.
I'm trying to install the 'connect' module because I need it for a project. It's definitely not installed yet, because if I try to require it, I'm told that it can't find 'connect'.
But when I type npm install connect, the first time, it seems to work but has quite a few warnings and seems to remove a lot of packages. It says:
npm WARN saveError ENOENT: no such file or directory, open 'D:\Program Files\nodejs\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'D:\Program Files\nodejs\package.json'
npm WARN nodejs No description
npm WARN nodejs No repository field.
npm WARN nodejs No README data
npm WARN nodejs No license field.
+ connect#3.6.6
added 9 packages, removed 473 packages and moved 3 packages in 3.991s
(Not sure why it's removing 473 packages, might be related). Anyway, it seems like maybe it worked, and then I realize that in nodejs/node_modules, the npm directory is nowhere to be found. And now, if I try to install any packages, it gives me a bunch of errors, basically telling me:
Error: Cannot find module 'D:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
Connect has been installed, but at a cost that seems...not quite right (I can't install any more packages!) Obviously I'm new to node.js, please send help. And I hope that I don't get banned from asking questions again because I'm pretty clueless. Did the best I could to be specific.

It seems trying npm install in uninitialized npm package directory.
You should initialize package with npm init.
You can find out more https://docs.npmjs.com/getting-started/using-a-package.json

Related

Warnings when installing npm modules in project directories, but not when installing globally

I have observed this issue when installing both newsapi and RequireJS. The path to my project directory is as follow: Users\username\project
In my project directory, when I run npm install newsapi --save (installation instructions per the newsapi site or npm install requirejs (installation instructions per the RequireJS site, I get the following identical warnings:
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\username\project\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\username\project\package.json'
npm WARN project No description
npm WARN project No repository field.
npm WARN project No README data
npm WARN project No license field.
It may be worth noting the project\node_modules\newsapi and project\node_modules\requirejs are still created and they seems to be populated as they should.
I noticed that when I install the modules globally (by running npm install -g newsapi --save or npm install -g requirejs) the installation succeeds without displaying any warnings. Why is this the case? What is happening in my project folder that might be causing this issue?
npm install fhqhwhgads will try to update the local project package.json but npm install -g fhqwhgads will install globally and so there's no package.json to update. So that's why you're note getting an warning with global installation.
If you want to create a package.json so that your dependencies can be tracked and replicated by others (or if you want to publish your code as a package), you can use npm init.

What am I missing when getting these errors installing Node on OSX?

Running npm install node (done successfully before on other machines) but now getting the following
npm WARN saveError ENOENT: no such file or directory, open '/Users/USERID/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/USERID/package.json'
npm WARN USERID No description
npm WARN USERID No repository field.
npm WARN USERID No README data
npm WARN USERID No license field.
Not sure what to do and searching around didn't yield results
Tried running via sudo
Tried installing from the Node website pkg
Searched around stackoverflow
Hoping to get this installed.
npm is a package manager for Node.js, and is not itself used to install Node.js.
You will want to either:
Download the pkg from here and install it: https://nodejs.org/en/download/
Use a package manager like nvm: https://github.com/nvm-sh/nvm
I recommend you get the LTS version.

npm error messages when installing packages as sudo user

I am trying to install express via npm in node (nodejs). I am the user 'kev' and this user is sudo. I cannot use a sudo command to install anything as it cannot find npm at all when I 'sudo npm' for some bizarre reason. I have tried adding symbolic links but sudo'ing still refuses to find npm. So running as a standard user and trying to install express using npm I get the following errors:
kev#tentimes:~$ npm install express
npm WARN saveError ENOENT: no such file or directory, open '/home/kev/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/home/kev/package.json'
npm WARN kev No description
npm WARN kev No repository field.
npm WARN kev No README data
npm WARN kev No license field.
I have no idea what the errors mean, except that it seems to me it may be due to me not elevating to sudo to install using nvm. Anyone have any suggestions? It is my first time installing express with node/nvm and I am following some recent guides on how to do this, but the guides just say to use "nvm install express" and this is just supposed to work. As a by the way, I have git setup, but is that why it is complaining about repositories?
NPM is a package manager, and as it's name implies, it works with packages. A package is, basically, a folder or repository with a package.json file in it, which contains all kinds of metadata about the package. This file is missing as the error tells you:
ENOENT: no such file or directory, open '/home/kev/package.json'
Thats fine, it should install the package anyway, check the ./node_modules folder. However it's recommended that you yourself initialize a nodejs package with npm init which will ask you a few questions about the package you're going to write. Afterwards, npm install --save express installs express and saves the dependency in your own package.json file so the next time you can just npm install and npm will happily install all dependencies listed in your own package.json file.
Here is some more documentation about what the package.json is and what information it contains: https://docs.npmjs.com/files/package.json

npm ERR! Refusing to delete / code EEXIST

I'm just running a simple npm install and i get this error.
npm ERR! path /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/#angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! code EEXIST
npm ERR! Refusing to delete /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/#angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which: is outside /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/#angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/which and not a link
npm ERR! File exists: /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/#angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! Move it away, and try again
This is the first time I get this error and I don't know what to do.
Steps
Delete the node_modules directory completely.
Run npm install again.
This should help.
This was how I solved mine after 'googling' around...
Navigate to the directory your node was installed in
rename your npm.cmd and npm files
Try run the installation again
If successful..delete the files you renamed earlier npm and npm.cmd
if not, :( :(
The cli commands here...in case you don't want to be renaming and stuffs
cd %ProgramFiles%\nodejs
ren npm.cmd npm2.cmd
ren npm npm2
npm2 install npm#latest -g
del npm2
del npm2.cmd
Rolf-schmidiger
Try running npm update -g npm then run npm i again.
If that doesn't work maybe npm cache clean helps.
If that doesn't work either you should consider removing the node_modules folder in your application and running npm i again.
If you still have no luck, I suggest removing the package-lock.json and the node_modules folder before running npm i.
For windows users (specific to windows 10) this must solve the problem.
Goto this folder:
C:\Users\[UserName]\AppData\Roaming\
delete or rename the npm and npm-cache folders.
This has fixed my problem in Windows.
I got this problem on Linux (npm is the current latest 5.6.0), because I created a tgz archive, and I needed to --dereference some symlinks (see man tar) when creating a tgz archive (which was them copied to VM for testing). This way a lot of symlinks in node_modules/.bin also became regular files.
npm says in the error message, .e.g.
npm ERR! Refusing to delete /path/to/node_modules/.bin/jest: is outside /path/to/node_modules/jest and not a link
This worked for me
npm install -g --force gatsby-cli
Thanks
I had a similar issue but was because initially the project was installed with
yarn install
Then when I tried to install dependencies using
npm install
I caught this same error. So ensure to use only one: yarn or npm. I fixed it by adding my dependency with
yarn add <vendor_name>
but the same works if you use npm instead, you need to add a dependency.
Uninstall node.js from control panel
Delete below folders
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\{User}\AppData\Roaming\npm (or %appdata%\npm)
C:\Users\{User}\AppData\Roaming\npm-cache (or %appdata%\npm-cache)
C:\Users\{User}\.npmrc (and possibly check for that without the . prefix too)
C:\Users\{User}\AppData\Local\Temp\npm-*
Install node.js again
I had a similar error(mine is not #angular),
resolved by deleting and reinstalling node with installer.
I had the same problem and it turned out the problem was that a stray instance of npm was running somewhere in the background at the same time I was trying to do the install (it was Webpack's npm run serve, to be precise).
Stopping the running instance resolved the problem.
I had a similar problem and what seems to have worked is to uninstall npm and reinstall it, making sure to be logged in as the correct user for the reinstall. I think I previously installed npm as root, but was updating a package as a regular (sudo) user.
I had this problem when working on a virtual, encrypted disk.
Moving the project to a regular disk solved the problem.
I the same error but when I was trying to update module "cordova" to version 9. I fixed it by forcing the install with --force. The npm command I used:
npm i -g --force cordova#9
I downgraded my node version to 10 with nvm, and it installed a newer version of npm (v6) during the process. After that, the package was installed w/o errors. So it's either npm or node version.
In my case, when trying to install for example the program mermaid-cli, and with npm being already installed,
npm install #mermaid-js/mermaid-cli
threw the error in question.
When I added --force, the output was just shortened, but the same error:
$ sudo npm install #mermaid-js/mermaid-cli --force
npm WARN using --force I sure hope you know what you are doing.
npm WARN enoent ENOENT: no such file or directory, open '/home/MY_USER/package.json'
npm WARN MY_USER No description
npm WARN MY_USER No repository field.
npm WARN MY_USER No README data
npm WARN MY_USER No license field.
npm ERR! code EEXIST
npm ERR! path /home/MY_USER/node_modules/npm/node_modules/.bin/rimraf
npm ERR! Refusing to delete /home/MY_USER/node_modules/npm/node_modules/.bin/rimraf: is outside /home/MY_USER/node_modules/npm/node_modules/rimraf and not a link
npm ERR! File exists: /home/MY_USER/node_modules/npm/node_modules/.bin/rimraf
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-02-03T13_41_52_634Z-debug.log
I then followed the accepted answer that says that you only need to remove and install npm again and therefore removed the directory node_modules from my home directory where it was installed.
Yet, I still ran into the error when running npm install:
$npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/MY_USER/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/home/MY_USER/package.json'
npm WARN MY_USER No description
npm WARN MY_USER No repository field.
npm WARN MY_USER No README data
npm WARN MY_USER No license field.
up to date in 0.865s
found 0 vulnerabilities
The easy fix for this was to just install the program with npm again when npm 'node_modules are removed! I happened to find out about by entering the command although npm's node_modules were removed. Ran through.
Logs:
$npm install #mermaid-js/mermaid-cli
> puppeteer#13.1.3 install /home/MY_USER/node_modules/puppeteer
> node install.js
Downloading Chromium r950341 - 142 Mb [====================] 100% 0.0s
Chromium (950341) downloaded to /home/MY_USER/node_modules/puppeteer/.local-chromium/linux-950341
npm WARN saveError ENOENT: no such file or directory, open '/home/MY_USER/package.json'
npm WARN notsup Unsupported engine for commander#8.3.0: wanted: {"node":">= 12"} (current: {"node":"10.19.0","npm":"6.14.4"})
npm WARN notsup Not compatible with your version of node/npm: commander#8.3.0
...
npm WARN MY_USER No description
npm WARN MY_USER No repository field.
npm WARN MY_USER No README data
npm WARN MY_USER No license field.
+ #mermaid-js/mermaid-cli#8.13.10
added 147 packages from 94 contributors and audited 147 packages in 26.338s
10 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Wrap up:
If npm install fails, install whatever program you like or dislike, but install one program with the npm command even if you just have removed npm's node_modules directory. It will download the node_modules again and in my case, the program worked.

npm ENOENT error in installing package

I was installing an encryption package for node when I received this ENOENT error.
$ npm install crypto2
C:\Users\adity
`-- crypto2#0.3.1
`-- node-rsa#0.4.2
`-- asn1#0.2.3
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\adity\package.json'
npm WARN adity No description
npm WARN adity No repository field.
npm WARN adity No README data
npm WARN adity No license field.
As for looking in the path the error describes, I looked there and found an old version. I did an uninstall from npm (which also received the same error). Then I had to manually remove it and empty from the trash.
I also tried to install it globally, again, to no success.
I am using git bash command prompt for this, and tried the same thing with node.js command prompt with it returning the same errors. The package I'm installing is (if this will be any help) : https://www.npmjs.com/package/crypto2
EDIT: I just discovered this problem isn't just with the encryption package but any package that I try to install. When I tried installing Requirejs, same error. This is weird, because I installed a couple of packages yesterday (Passport.js) which installed perfectly without any hiccups whatsoever.
It's just warning you that it didn't find a package.json. If you don't have one or need one, then you can just ignore it.
If you want to create one and add the dependencies to it automatically, you could do:
npm install crypto2 --save

Resources