2016/04/25

[Node.js] 解決 npm ERR! cb() never called! 的問題

近期玩 Angular 2, 在執行 npm install 時發生問題

出現的錯誤訊息是:

npm ERR! cb() never called!


這問題是在 Angular 2 beta 7 版, 變更至近期的 Angular 2 beta 15 版時才發現到的

原先本機的 Node 版本為 v 5.9.0, npm 版本為 3.8.3

練習時, 使用的是 Angular 2 beta 7, 安裝正常使用

剛好在開新專案, 用目前 Angular 官方提供的最新版本 beta 15 時, 安裝即出現 npm ERR!


解決方法:

1. 清掉 cache

先清一下 cache 再重裝看看是否行得通

npm cache clean

2. 更新 Node 版本

Google 爬了許多文的結果是 Node v5.9.0 也有這樣的問題, 更新版本後就好了!


Windows 更新方式:

直接至 https://nodejs.org 下載最新 stable 的版本

Mac 更新方式:

用 Homebrew 的方法:

brew doctor
brew upgrade node


我本身遇到的情況的確在更新至版本 v.5.11.0 後就沒有這個問題囉!

2016/04/24

[Laravel] 如何使用 Elixir 的 BrowserSync

我想這是常常遇到的雷, 沒有記錄下來總是會忘記

目前測試的版本:
  • Laravel 5.2.29
  • laravel-elixir 5.0.0

1. 建立 Laravel 專案

composer create-project laravel/laravel myproject --prefer-dist

2. npm 安裝套件

npm install

3. 修改專案中的 gulpfile.js

mix.browserSync({
    proxy : 'localhost:8000'
});

2016/04/15

[VSCode] 如何變更 Visual Studio Code UI 介面語系

Visual Studio Code 1.0 釋出後,自動變更成本機的語系,自動中文化了

如果想要維持使用英文版介面,可以這麼做

鍵盤輸入 Ctrl + Shift + P 跳出指令輸入框

輸入 語言 -- 即可找到 "設定語言"

只需把 Locale 的值變更成希望呈現的介面語系即可

繁中: zh-TW
英文: en-US

變更後,儲存並重開 Visual Studio Code 即可


可變更的語系列表: VSCode - Display Language

Visual Studio Code 1.0 正式釋出

千呼萬喚始出來之 Visual Studio Code 1.0



2016/04/12

[Laravel] 解決使用 tinker 出現 PsySH history file found 的問題

Laravel 的 tinker 指令

php artisan tinker

結果出現錯誤訊息:

PsySH history file found at '/Users/USERNAME/.config/psysh_history'.  
Please delete it or move it to '/Users/USERNAME/.config/psysh/psysh_history'.

解決方法:

1. 可以直接把 ~/.config/psysh_history 刪掉

rm ~/.config/psysh_history

2. 把它移到自己家目錄的 .config/psysh/ 資料夾中

cd ~/.config
mkdir psysh
mv psysh_history ~/config/psysh/

2016/03/27

[Node.js] 在 Mac 上使用 Homebrew 更新全域 npm 的解決方法

近期在 Mac 上更新 npm 的全域版本時 (npm update npm -g),造成會出現一些奇怪的問題,在未更新前其實一切都正常

一般作業像是使用 gulp 也都沒有問題,但是若是要顯示一些資訊,例如列出全域的安裝套件,卻會出現一些 ERROR 訊息

後來把整個原本的 /usr/local/lib/node_modules 全部刪掉,重新再安裝 Node 並手動安裝 npm  後,終於又恢復正常啦~ 沒有 ERROR 的訊息感覺才正確!

參考資料:



以下指令說明:

  • 把原本裝的全域套件先列出存到 ~/node_modules.txt
  • 刪除整個 /usr/local/lib/node_modules 資料內容
  • Homebrew 解除安裝 node
  • Homebrew 安裝 node 但不要 npm
  • 建立 ~/.npmrc 的檔案,內容是 prefix=~/.node 即為 npm  的安裝目錄
  • 下載安裝 npm
  • 把 ~/.node/bin 的路徑加到 ~/.bash_profile
  • 重載 ~/.bash_profile
  • 重新安裝原本的全域套件
  • 刪掉暫存的 ~/node_modules.txt 檔案


執行的指令:

ls -1 /usr/local/lib/node_modules > ~/node_modules.txt
sed -e "s,/\+$,," -e "s,^/\+,," ~/node_modules.txt
rm -rf /usr/local/lib/node_modules
brew uninstall node --force node
brew install node --without-npm
echo prefix=~/.node >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh
echo 'export PATH="$HOME/.node/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
for i in `cat ~/node_modules.txt`;do npm install -g $i;done
rm ~/node_modules.txt