node 和 npm 常见问题
记录 node 和 npm 常见问题
# npm 配置淘宝镜像:
npm config set registry "https://registry.npm.taobao.org"
# node-sass 安装失败的解决方法:
- 设置全局镜像源:
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
- 参考资料: 整理 node-sass 安装失败的原因及解决办法 - - SegmentFault 思否 (opens new window)
# Missing write access to /usr/local/lib/node_modules
解决方法有很多种, 可以参考这里: node.js - npm install -g less does not work: EACCES: permission denied - Stack Overflow (opens new window)
这里主要说一下以下这种解决方法的问题:
To minimize the chance of permissions errors, you can configure npm to use a different directory. In this example, it will be a hidden directory on your home folder.
Make a directory for global installations:
mkdir ~/.npm-global
Configure npm to use the new directory path:
npm config set prefix '~/.npm-global'
Open or create a ~/.profile file and add this line:
export PATH=~/.npm-global/bin:$PATH
Back on the command line, update your system variables:
source ~/.profile
Test: Download a package globally without using sudo.
npm install -g jshint
If still show permission error run (mac os):
sudo chown -R $USER ~/.npm-global
由于我是使用 iTerm2
命令行工具的, shell
使用的是 zsh
, 当使用 vi ~/.profile
添加环境变量 export PATH=~/.npm-global/bin:$PATH
后, 原始系统命令(如 ls
, vi
)均无法使用
查询后才知道:
原因是因为环境变量的问题, 编辑 profile 文件没有写正确, 导致在命令行下 ls 等命令不能够识别.
解决办法: 在命令行下打入下面这段就可以了
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
所以我这种情况是不能编辑 ~/.profile
文件的
需要编辑的是 ~/.zshrc
文件, 在该文件种添加环境变量 export PATH=~/.npm-global/bin:$PATH
就可以了
zsh 的配置文件不再是 /.zsh_profile 去调用 /.zshrc,而是直接就是 /.zshrc 就可以了.所以对于 zsh 的一切设置,直接去 /.zshrc 中设置.