Node.js 遇見 Not a string or buffer


在開發環境部署到線上環境時,遍上了下面兩句東西
可以不停地向大神發問都得到不一個比較有用的解決方法
最後一再查證下發現應該是由於線上環境中的套件依賴版本不同導致的

問題:

1
2
> node (new Hmac).init(hmac, key);
> Not a string or buffer

解決:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 先更新開發環境中的 npm 版本
# 同時也更新線上環境的 npm 版本
# 確保兩者都 (>= 1.1.2)
npm update npm -g

# 之後在開發環境中輸入指令建立新的依賴版本描述
npm shrinkwrap

# 之後將生成出來的 npm-shrinkwrap.json
# 放到線上環境中,再安裝依賴套件
npm install

# 最後兩邊通過比較套件列表確保大家都用同版本就解決了
npm list