node require can't find module(适用于mac或linux,不支持window)
Table of Contents
前言
我已经正确的安装了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/$USER/node_modules
由于根据npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules,
node_module
目录的拥有者是当前用户,所以没有必要使用sudo
命令.