天天看點

Node:找不到子產品Error: Cannot find module

問題

安裝完子產品

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子產品找不到怎麼解決?

繼續閱讀