问题
安装完模块
npm install -g crypto-js
导入模块报错
var CryptoJS = require("crypto-js");
// 运行报错 Error: Cannot find module 'crypto-js'
解决
查看安装路径
$ npm prefix -g # node安装路径
/Users/xxx/.nvm/versions/node/v10.16.0
$ npm -g root # 查看依赖安装路径
/Users/xxx/.nvm/versions/node/v10.16.0/lib/node_modules
通过 module.paths
查看模块查找列表,发现都没有
console.log(module.paths)
[ '/Users/xxx/Desktop/node_modules',
'/Users/xxx/node_modules',
'/Users/node_modules',
'/node_modules' ]
解决
方案1:直接使用模块绝对路径
var CryptoJS = require("/Users/xxx/.nvm/versions/node/v10.16.0/lib/node_modules/crypto-js");
方案2:将node_modules 路径添加到模块查找路径列表
module.paths.push("/Users/xxx/.nvm/versions/node/v10.16.0/lib/node_modules")
var CryptoJS = require("crypto-js");
方案3:添加NODE_PATH环境变量
$ vim ~/.bash_profile
# nodepath
export NODE_PATH="/Users/xxx/.nvm/versions/node/v10.16.0/lib/node_modules"
sublime下使用方案3,没有成功,文件~/.bash_profile
的变量都没有导入
</div>