Reputation: 238
I created an index.js, index.html and package.json file and I wanted to add express. When I write 'npm install express' in the terminal, I'm getting the error below. So far, I tried 'sudo npm install -g express', deleting node and npm completely and re-install. I also went through other questions over here but none of them worked out for me. Whatever I write with npm I get the same error. (I'm using macOS)
Do you have any suggestions?
This is the error I am getting:
Error: EROFS: read-only file system, mkdir '/npm'
TypeError: Cannot read property 'loaded' of undefined
at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97:27)
at errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:78:20
at cb (/usr/local/lib/node_modules/npm/lib/npm.js:225:22)
at /usr/local/lib/node_modules/npm/lib/npm.js:263:24
at /usr/local/lib/node_modules/npm/lib/config/core.js:81:7
at Array.forEach (<anonymous>)
at /usr/local/lib/node_modules/npm/lib/config/core.js:80:13
at f (/usr/local/lib/node_modules/npm/node_modules/once/once.js:25:25)
at afterExtras (/usr/local/lib/node_modules/npm/lib/config/core.js:171:20)
/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97
var doExit = npm.config.loaded ? npm.config.get('_exit') : true
^
TypeError: Cannot read property 'loaded' of undefined
at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97:27)
at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
at process.emit (events.js:223:5)
at process._fatalException (internal/process/execution.js:150:25)
Upvotes: 11
Views: 71786
Reputation: 47
This Issue might be also caused by dual-boot where windows hasn't been shutdown properly. You can spin up windows again and then Shutdown properly.
You can either do shutdown /s /f /t 0 /full
or go to control panel -> power-settings-> what power button should do -> change unavailable settings and turn on fast-boot. and boot up your secondary boot. This could potentially fix the issue.
Upvotes: 1
Reputation: 1475
I encountered a similar issue when trying to write to a file because of a leading slash that I had in front of the filename so using the following line causes the issue :
fs.writeFileSync("/output.txt", JSON.stringify(data), "utf8");
While the issue is gone with the below one (after removing the leading slash):
fs.writeFileSync("output.txt", JSON.stringify(data), "utf8");
Upvotes: 1
Reputation: 31
I had error EROFS: read-only file system, mkdir '/.npm'
while I was trying to install packages.
Then I used npm config list --json
and found only thing used this path is "cache": "/.npm"
.
So I changed cache by npm config set cache '/tmp'
, then installation worked.
Upvotes: 1
Reputation: 471
In my case it turned out to be a problem with the cache
entry in the ~/.npmrc
file. Apparently one of the sub-projects I have worked on required the line:
cache=/build/package_cache/npm
But when run in another sub-project it seems to have caused npm to not be able to create the /build
directory.
Commenting out that line worked around the problem.
Upvotes: 1
Reputation: 152146
In my case, I deleted ~/.local/lib
, then re-ran the npm install -g
command. No more error.
Upvotes: -1
Reputation: 1831
The error means that you have no permission to install anything with npm at the path /npm
.
To verify this run npm root -g
. This should return /npm
.
Note that /npm
ist not the default installation path on MacOS (see https://stackoverflow.com/a/35638528/1754076).
Checkout your npm configuration file and change the default installation path to something where you do have write access. You can also use npm itself to change the default installation path.
Upvotes: 10