前言
我已经正确的安装了node,并且我使用npm install -g 安装包没有出错,但是就是require('安装包')报错,我的安装在'/usr/local/lib/node_modules'下面
原因分析
可能是node命令早不到npm的安装包的安装目录,于是我打印了node默认的模块目录:
>>node
>module.paths
[ '/Users/用户名/repl/node_modules',
'/Users/用户名/node_modules',
'/Users/node_modules',
'/node_modules',
'/Users/用户名/.node_modules',
'/Users/用户名/.node_libraries',
'/usr/local/lib/node' ]
我发现,‘/usr/local/lib/node_modules’目录并没有包含在里面,于是我使用下面的命令
>module.paths.push('/usr/local/lib/node_modules')
虽然这个命令生效了,但它是暂时性的。但我并不知道如何永久的把我的模块目录添加进去。 为了解决这个问题,我使用软链接的来解决这个问题
解决方案
ln -sfn /usr/local/lib/node_modules /Users/用户名/node_modules
由于根据 npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules,node_module目录的拥有者是当前用户,所以没有必要使用sudo.