最近のJavaScript
以前、プログラミングスクールでjQuery
を少し学んでいたが、当時はJavaScriptの基礎文法も覚えずに使用していたため、全く身につかなかった。
最近サーバーサイドでLaravelを使用しているが、やはりフロントサイドについても学び直しが必要だと感じた。ので、現在はJavaScriptの独習に努めている。
そしてLaravelでJavaScriptを使用する
ことを考えた時、ネットで調べたら様々な選択肢というか用語が出てきた。それはここに簡記しておく。(サイトによっては、ライブラリの部分がフレームワークと表記されている箇所もある。)
jQuery
JavaScriptのライブラリ。JavaScriptを簡単に記述する仕組みを提供している。
React
JavaScriptのライブラリ。Facebookが開発している。
Vue.js
JavaScriptのライブラリ。 ビューに特化している。
AngularJS
JavaScriptのフレームワーク。Googleが開発している。大規模開発向け。
Node.js
サーバーサイド
で動くJavaScript。Express
などのフレームワークも存在する。今回はフロントサイドとしてJavaScriptを使用したいので、直接使用はしないと思う。
npm
Node.jsのパッケージ管理システム
。Node.jsのインストール時に、一緒にインストールされる。
nodebrew
(npmを含む)Node.jsのバージョン管理システム
。Homebrew
でインストールできる。
結論
JavaScriptのライブラリを使いたい時、npm、要はNode.jsのインストール
が前提条件になることが多いと判明した。(ちなみに、CDN
という仕組みを利用する方法もある。これはnpmのインストールが不要である。)
そのため、今回は下準備として以下の作業を行うことにした。(まだ使用するライブラリは決めていないが・・・)
- Homebrewで
nodebrewをインストール
する。 - nodebrewを使用して
(npmを含む)Node.jsをインストール
する。
nodebrewのインストール
今回はこちらのサイト様を参考にした。
Node.jsをMacにインストール!(Homebrew→Nodebrew→Node.js順にインストール)
早速、Homebrewでnodebrewをインストールする。
$ brew install nodebrew
Updating Homebrew...
# 省略
==> Caveats
You need to manually run setup_dirs to create directories required by nodebrew:
/usr/local/opt/nodebrew/bin/nodebrew setup_dirs
Add path:
export PATH=$HOME/.nodebrew/current/bin:$PATH
To use Homebrew's directories rather than ~/.nodebrew add to your profile:
export NODEBREW_ROOT=/usr/local/var/nodebrew
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> Summary
🍺 /usr/local/Cellar/nodebrew/1.0.0: 8 files, 38.4KB, built in 4 seconds
メッセージ内のAdd path:
にある環境変数を追記し、反映させる。そしてnodebrewの場所を確認する。
しかし、環境変数の設定については、後にnodeコマンド
実行時に詰むことになる・・・(最後に解決方法を説明する。)
$ echo "export PATH=$HOME/.nodebrew/current/bin:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
$ which nodebrew
/usr/local/bin/nodebrew
setupコマンド
を行わないとNode.jsのインストールができないので、必ず実行する。
$ nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew
========================================
Export a path to nodebrew:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
その他のコマンド確認はこちらから。
$ nodebrew -help
Node.jsのインストール
既存のNode.jsをアンインストールする
インストールの前に、既にNode.jsがインストールされていないか確認する。
$ which node
/usr/local/bin/node
$ node -v
v9.11.1
$ npm -v
5.6.0
全く記憶に無いのだが、以前Homebrewでインストールしていたようだ。
$ brew list node
/usr/local/Cellar/node/9.11.1/bin/node
/usr/local/Cellar/node/9.11.1/etc/bash_completion.d/npm
/usr/local/Cellar/node/9.11.1/include/node/ (136 files)
/usr/local/Cellar/node/9.11.1/lib/dtrace/node.d
/usr/local/Cellar/node/9.11.1/libexec/bin/ (2 files)
/usr/local/Cellar/node/9.11.1/libexec/lib/ (4973 files)
/usr/local/Cellar/node/9.11.1/share/doc/ (3 files)
/usr/local/Cellar/node/9.11.1/share/man/man1/node.1
/usr/local/Cellar/node/9.11.1/share/systemtap/tapset/node.stp
HomebrewでインストールしたNode.jsは、アンインストールする。
$ brew uninstall node
そしたらこのようなエラーメッセージが。どうやらherokuと依存関係
にあるようだ。
Error: Refusing to uninstall /usr/local/Cellar/node/9.11.1
because it is required by heroku, which is currently installed.
You can override this and force removal with:
brew uninstall --ignore-dependencies node
--ignore-dependenciesオプション
を付けて再度コマンドを実行する。
$ brew uninstall --ignore-dependencies node
さらにメッセージが。バージョン9.4.0
が残っているようだ。
Uninstalling /usr/local/Cellar/node/9.11.1... (5,125 files, 49.7MB)
node 9.4.0 1 is still installed.
Remove all versions with `brew uninstall --force node`.
今度は--forceオプション
を付けてコマンドを実行する。
$ brew uninstall --force node
Uninstalling node... (5,125 files, 49.7MB)
これでアンインストールは完了した。
nodebrewでインストールする
現在nodebrewでインストールできるNode.jsのバージョンは、以下のコマンドで確認できる。
$ nodebrew ls-all
インストール時にstable
を指定すれば、自動的に安定版がインストールされる。もし最新版を手に入れたい時は、latest
を指定する。
今回は安定版をインストールしたいので、以下のコマンドを実行する。
$ nodebrew install-binary stable
Fetching: https://nodejs.org/dist/v10.1.0/node-v10.1.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully
2018年5月13日現在、バージョン10.1.0
がインストールされた。
さらに使用するバージョンを指定する。仮にインストールされているバージョンが1つだけでも、このuseコマンド
は実行しなければならない。
$ nodebrew use stable
use v10.1.0
場所を確認する。
$ which node
/Users/ユーザー名/.nodebrew/current/bin/node
$ which npm
/Users/ユーザー名/.nodebrew/current/bin/npm
バージョンを確認する。nodeコマンド
が通らない。何故だろうか?
$ node -v
-bash: /usr/local/bin/node: No such file or directory
$ npm -v
5.6.0
環境変数を再確認する
nodeコマンド
を実行した時のエラーメッセージ-bash: /usr/local/bin/node: No such file or directory
を見る限り、nodeを探す場所
を間違えて指定しているようだ。
現在の.bash_profile
を確認する。先ほど行ったnodebrewの環境変数の追加では、単純にexport文が追記されただけだった。
# 既存のexport文
export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/bin:$HOME/.composer/vendor/bin
eval "$(rbenv init -)"
if [ -f ~/.bashrc ]; then
~/.bashrc
fi
# 追記されたexport文
export PATH=/Users/ユーザー名/.nodebrew/current/bin:/Users/ユーザー名/.rbenv/shims:既存の$PATH
これを以下のように修正した。(編集にはエディターを使用した。)以前にも記事にしたが、export文の追記方法はちょっとややこしいと思う。
.bash_profile追記時のホームディレクトリの表示について
export PATH=$HOME/.nodebrew/current/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/bin:$HOME/.composer/vendor/bin
eval "$(rbenv init -)"
if [ -f ~/.bashrc ]; then
~/.bashrc
fi
こちらも忘れずに実行する。
source ~/.bash_profile
再チャレンジ。今度はうまくいった。export文の呼び出し順(もとい位置?)が原因だったようだ。
しかし、何故npmコマンド
だけは通ったのだろうか・・・?
$ node -v
v10.1.0
今回はここまで。