NPM command not found aftter install Yarn

NPM command not found aftter install Yarn

NPM command not found aftter install Yarn, 公司在前端本來的套件管理軟體是用bower,但是在遇到一些問題之後(老實說是那些問題我也忘了XD),發現官網自己都不推薦自家產品QQ,While Bower is maintained, we recommend using Yarn and Webpack for front-end projects read how to migrate!

所以我們就轉跳到YARN的懷抱了。但是在安裝時發生了幾個問題,有些是同事遇到的,有些是筆者遇到的,就做個紀錄,希望可以幫到有緣人。

問題

yarn的安裝說明在官網可以簡單查到,筆者在安裝的時候是使用Homebrew

brew install yarn

但是沒想到在安裝玩之後,npm 竟然掛掉了!!!

$ npm
npm:command not found

而且php56-intl也掛掉了,結果就是無法執行phpunit

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-intl/intl.so' - dlopen(/usr/local/opt/php56-intl/intl.so, 9): Symbol not found: _compiler_globals
  Referenced from: /usr/local/opt/php56-intl/intl.so
//...

輸入php -m 結果發現真的不見了。

處理方式

為了讓phpunit可以跑就先把php56-intl裝回來

 brew reinstall php56-intl

接著重新安裝npm

//先更新brew
brew update
//重新安裝node
brew uninstall node
//接著因為yarn dependency 的關係要強制刪除。
brew uninstall --ignore-dependencies node
//這時候如果還有其他的版本也要一併刪除
brew uninstall --force node
//接著重新安裝node
brew install node
//之後他會要求你安裝brew postinstall node
brew postinstall node
//如果這時候你看到deny訊息:Error: Permission denied @ rb_sysopen - /usr/local/lib/node_modules/npm/.github/CODEOWNERS
//就修改一下權限
sudo chown -R itrd03 /usr/local/lib/node_modules/
//接著下brew postinstall node
brew postinstall node

照理說npm就可以使用了!

2018/1/5 更新

npm 更新後,好像無法正確的編譯sass,所以請下以下指令:

 

npm rebuild node-sass

 

註記:事後我們在討論時發現應該是在用homebrew 安裝yarn 時有動到npm 對應到node的部份,不過因為當初安裝yarn 時太趕了無法擷取到全部的錯誤資訊,所以就流個技術債以後有看到在處理吧XD