'Why does 'npm doctor' produce permission errors?
When I run npm doctor I get permission errors that I have not seen before:
Perms check on local bin folder not ok Check the permissions of files in /Users/Orome/node_modules/.bin
Perms check on global bin folder not ok Check the permissions of files in /usr/local/bin
I've made no changes that I'm aware of that would have caused this change.
What is causing this and what can I do about it?
Full output of npm doctor:
npm WARN checkFilesPermission error getting info for /Users/Orome/node_modules/.bin
npm ERR! checkFilesPermission Missing permissions on /usr/local/bin/.keepme (expect: executable)
Check Value Recommendation/Notes
npm ping ok
npm -v ok current: v7.0.10, latest: v6.14.8
node -v ok current: v15.2.0, recommended: v15.2.0
npm config get registry ok using default registry (https://registry.npmjs.org/)
which git ok /usr/local/bin/git
Perms check on cached files ok
Perms check on local node_modules ok
Perms check on global node_modules ok
Perms check on local bin folder not ok Check the permissions of files in /Users/Orome/node_modules/.bin
Perms check on global bin folder not ok Check the permissions of files in /usr/local/bin
Verify cache contents ok verified 9656 tarballs
npm ERR! Some problems found. See above for recommendations.
Config:
macOS: 10.15.7-x86_64
CPU: quad-core 64-bit haswell
HOMEBREW_VERSION: 2.5.9-52-g8cffae8
HOMEBREW_PREFIX: /usr/local
Clang: 12.0 build 1200
Java: 1.8.0_172
CLT: 12.1.0.0.1.1602137645
Xcode: 12.1
Solution 1:[1]
It seems that Homebrew and node can get out of sync and produce this error as a result. In any case simply
npm install -g npm
might take care of it.
If that fails, confirm that .keepme is empt and try
rm -rf /usr/local/bin/.keepme
Solution 2:[2]
In my case, after updating npm, I found that the .bin directory does not exist. You just need to create: mkdir /Users/<username>/node_modules/.bin
Solution 3:[3]
Perms check on global bin folder: npm doctor is missing executable on /usr/local/bin/.keepme file
This solves the problem in my case:
chmod +x /usr/local/bin/.keepme
Perms check on local bin folder: the node_modules/.bin folder is missing from the command execution location, you can create it manually or command:
mkdir node_modules && cd node_modules && mkdir .bin
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Mandrichenko |
| Solution 3 | szeveba |
