我正在尝试在 phpstorm 上设置 less,以便在保存时将 .less 文件编译为 .css。我已经安装了 node.js,下一步(根据这个 https://www.jetbrains.com/webstorm/help/transpiling-sass-less-and-scss-to-css.html)正在终端中运行这个命令
npm install -g less
但是,当我这样做时,我会收到这些错误
☁ ~ npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ less@2.5.3
├─┬ errno@0.1.4
│ └── prr@0.0.0
├── image-size@0.3.5
├── mime@1.3.4
├─┬ promise@6.1.0
│ └── asap@1.0.0
└─┬ source-map@0.4.4
└── amdefine@1.0.0
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm v3.3.6
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/brentscholl/npm-debug.log
我在这里完全是菜鸟,不知道下一步该做什么。任何帮助将不胜感激!
不推荐使用 sudo。它可能会在以后给您权限问题。虽然上述方法有效,但我不喜欢将 root 拥有的文件夹更改为对用户可写,尽管这可能只是多个用户的问题。要解决这个问题,您可以使用带有“npm users”的组,但这也是更多的管理开销。有关处理文档中权限的选项,请参见此处:https://docs.npmjs.com/getting-started/fixing-npm-permissions
我会选择选项2:
为了最大限度地减少权限错误的可能性,您可以将 npm 配置为使用不同的目录。在此示例中,它将是您的主文件夹中的隐藏目录。为全局安装创建一个目录: mkdir ~/.npm-global 配置 npm 以使用新目录路径: npm config set prefix '~/.npm-global' 打开或创建一个 ~/.profile 文件并添加以下行:export PATH=~/.npm-global/bin:$PATH 返回命令行,更新系统变量: source ~/.profile 测试:不使用 sudo 全局下载包。 npm install -g jshint 如果仍然显示权限错误运行(mac os): sudo chown -R $USER ~/.npm-global
这适用于默认的 ubuntu 安装:
sudo apt-get install nodejs npm
如果您希望更灵活地管理版本,我建议您使用 nvm
:https://github.com/creationix/nvm
在 MacOS 上使用 brew,如果您使用的是最新的 npm
版本,它应该可以在没有 sudo
的情况下工作。享受 :)
在终端窗口中运行这些命令(注意:不要替换 $USER 部分...这是获取用户的 linux 命令!):
sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules
/usr
中事物的所有者是个好主意吗?如果其他人想安装节点的东西怎么办?
sudo chown -R $USER /usr/local/lib/node_modules
。 @Mark 是的,但是如果您只有一个用户,那当然没问题。
npm i -g yarn
Mac OS X 答案
您没有对 node_modules 目录的写入权限
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
将您的用户添加到具有写入权限的目录
打开包含 node_modules 的文件夹 open /usr/local/lib/ 在 node_modules 文件夹上执行 cmd+I 以打开权限对话框 在共享和权限部分添加您的用户以具有读写权限
open /usr/local/lib/
https://i.stack.imgur.com/vEvPi.png
使用 Node Version Manger(按照 written in npm documentation)重新安装 node 和 npm 以避免权限错误:
在 OSX 中:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
或关注这篇文章:
http://dev.topheman.com/install-nvm-with-homebrew-to-use-multiple-versions-of-node-and-iojs-easily/
Windows 用户应安装 nvm-windows。有关如何安装 nvm 的更多帮助,请参阅 nvm readme。
然后选择例如:
nvm install 8.0.0
nvm use 8.0
现在你可以再试一次:
npm install -g less
对于我的mac环境
sudo chown -R $USER /usr/local/lib/node_modules
解决问题
您可以使用此命令和 root 密码来为 node_module
文件夹添加写入权限:
sudo chown -R $USER /usr/local/lib/node_modules
我已经尝试了所有建议的解决方案,但没有任何效果。
我正在使用 macOS Catalina 10.15.3
转到 /usr/local/
选择 bin 文件夹 > 获取信息
https://i.stack.imgur.com/tNKSJ.png
然后去终端运行 npm install -g @ionic/cli
它帮助了我。
open /usr/local/lib/
sudo chown -R $USER /usr/local/lib/node_modules 这个命令会起作用
您可以尝试使用 sudo,如下所示
sudo npm install -g less
如果不起作用,您可以参考此链接https://ionicframework.com/docs/developing/tips#resolving-permission-errors
尝试使用 sudo
安装。我在全局安装 npm 包时遇到了类似的问题。出现此问题的原因是当前用户没有对目录进行更改的写入权限。
没用
npm i -g vsce
工作过
sudo npm i -g vsce
我有同样的问题。更新 npm 对我也不起作用,所以我决定重新安装它。
对我有用的是从我的系统中卸载节点。
sudo apt-get remove nodejs
sudo apt-get remove npm
结束,然后在更新后重新安装它。
sudo apt-get update
sudo apt install npm
在 linux 中确保获得所有权限:
sudo su
不定期副业成功案例分享
npm i -g yarn
...sudo chown...
方法不适用于那个npm i -g something
这样简单的东西对数百万人不起作用,谷歌和一些解决方案的人说使用sudo
,有些人说sudo
是危险的并且使用黑客和用户做出一些猜测至于什么可能没问题,并输入他们不理解且不知道安全后果的任何内容。这就是我们现在的工程状态?