問題
安裝完子產品
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
的變量都沒有導入
參考
nodejs require子產品找不到怎麼解決?