JSを学び始め色々と触っていると、npmをよく使う。よくわからないまま使っているので理解を深めてみる。
Node.jsとは
- ChromeのJavaScriptエンジンV8からスクリプトの実行環境を取り出したもの。
- それに加えて、ファイルの読み書きや圧縮、HTTPサーバーなどのAPIを追加ている。
ChromeのJS実行エンジンの処理速度がとても速かったことから、ブラウザだけに留めておくのは勿体無いといった流れから作成されている。
Node.jsの構成
- Nodeコアライブラリ
- Node.jsバインディング
- V8エンジン
- 非同期 I/O(インプットアウトプット)
Node.jsの特徴
- 非同期処理を標準APIとして提供しているため実行効率がいい。またノンブロッキングI/Oなのでチャットアプリなどで高いパフォーマンスを発揮する。
- サーバー側もクライアント側も同じ言語でかける
- 便利なライブラリを簡単に利用できる。これはnode.jsのためのパッケージマネージャ**「npm」**で利用できる。
## JSでI/O処理とは
Ajaxのように非同期通信を行う。ファイルの読み込む処理は、requreを利用する。
ファイルの読み込み
var fs = require('fs');
他のファイルへ関数を渡す
function oge(){
// 処理
}
exports.hoge = hoge;
取り込みたいファイルの読み込み
var foo = require('./index.js');
foo.hoge();
requireとは
commonJSで定められた構文。この構文を利用できる環境でないと利用できない。Node.jsはその環境の一つ。
commonJSとは
サーバーサイドJSがで始めた時に、サーバーサイドの標準仕様を決めよう!ということで定められた仕様のこと。悪魔でルールのことである。
## npm とは
-
node.jsのパッケージを管理するツール
-
パッケージはnpmの公式HPに掲載されている
-
Ex) Express,promise,React,async,など
npm コマンド
-
npm --v
: バージョンチェック -
npm list -g
: npmでインストールされたパッケージを表示。-gで使用して居留守全てのコンピュータから検索。 -
npm list
: 現在のディレクトリから検索。 -
npm -i <package>
: ローカルインストール -
npm i -g <package>
: グローバルインストール -
npm un <package>
: アンインストール -
npm up
: パッケージのアップデート -
npm ls
: インストールしたモジュール一覧 -
npm --v : npm install -g npm : npm rebuild
: npmを最新の状態にする
npm自体はnodebrewでnode.jsをインストールすると一緒にインストールされる。
つまり、node.jsとnpmはセット。nodebrewでバージョン管理する際、nodeのバージョンを変更するとnpmのバージョンも自動で変更される。
もし変更してしまって戻したい場合は、npm uninstall で削除したのちにinstallをし直す。
それを踏まえた上でnpm自体のversionを変える方法
npm install npm@latest -g
:最新版にアップデート
npm install npm@5.0.0 -g
:特定のバージョンをインストール
Node.jsのインストール
- Homebrewのインストール
- nodebrewのインストール
- Node.jsのインストール
-
Homebrew はMac用のパッケージマネージャ
-
nodebrewはnode.jsのバージョン管理ツール。任意のバージョンのnode.jsを簡単にインストールすることができる、またバージョンの切り替えが簡単にできる。
-
nodebrewのインストールにはパスを通す必要がある
nodebrewのインストール方法
homebrewをインストールしてから
brew install nodebrew
その後、パスを通す必要がある。
パスを通すとは何か?
以下の記事を見れば完璧にわかります。何も言わず呼んでください。
PATHを通すとは? (Mac OS X)
結論としてはコマンド検索パス(コマンドサーチパス)を追加すること。
つまりシェルがコマンド実行ファイルを探しに行くパスのこと
lsコマンドが実行できるのは、binディレクトリに実行ファイルが存在し、そこにpathを通しているから。「bin/ls」でも実行できる。
コマンド検索パスの確認方法
echo $PATH
/.nodebrew/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
セミコロンで区切られているので
/.nodebrew/current/bin:
/usr/local/bin:
/usr/bin:/bin:
/usr/sbin:/sbin
4つが存在することがわかる。
whichコマンドを利用することで実行ファイルがどこにあるのかを教えてくれる。
$ which nodebrew
$ .nodebrew/current/bin/nodebrew
pathには優先度がある
/usr/local/bin:が最優先される。
## そもそもshellとは何か? 以下の記事を読む。しっかりとまとめられている。 [初心者が調べた。shellとは](https://qiita.com/ycoda/items/87d23b818cb06ba1c348)
shellは、OSのLinuxを操作するためのもの。
- コマンドを受け付け
- シェルスクリプトの実行
shellの種類として、bashがある。
ファイルの操作やプロセスの操作などを行う。
コマンド種類
-
cat ファイル名
: ファイルを確認する。-n
で行番号をつける。 -
vi ファイル名
: ファイルを編集する。i
で編集モード。esc
で終了。:wq
で保存して終了。 -
vi 新規ファイル名
: ファイルを作成できる。 -
cat ファイル名 >> sample.txt
: 表示されたファイルをsample.txt の最後に連結する。 > は標準出力の意味。
環境パスを通す
以下をそのまま書けば良い。
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
echoは画面に文字列や数値、変数を表示するコマンド。
>> は.bash_profileの最後に連結するコマンド。つまり.bash_profileの末尾に、PATH=$HOME/.nodebrew/current/binを記述している。
.bash_profileと、.bashsr
以下の記事を読む。
.bash_profileと.bashrcについて
簡単にまとめると
- Linuxにログインすると、ホームディレクトリにある.bash_profileが実行され、そのあとに.bashrcが実行される。これらのファイアルの中にある環境変数やコマンドのエイリアスの設定を自由にできる。
- ログイン時に一回だけ実行したい時
.bash_profileに記載
- シェルを起動する度に実行したい時(一般的な設定)
.bashrcに記載
どちらかに通したいPATHを記載。
Pathを通すには
$ export PATH=$PATH:追加したいコマンド検索パス
Pathを通した後
sorce ~/.bashrc
「source」コマンドは、ファイルに書かれたコマンドを現在のシェルで実行する、というコマンドです。主にシェルの設定ファイルを反映させる際に使用します。
追加するパスの優先度を高めたい場合
export PATH=追加したいコマンド検索パス:$PATH
以上でnodebrewのインストールが完了。
Node.jsのインストール
//インストールできるバージョンの確認
nodebrew ls-remote
//インストール
nodebrew install <package_name>
以上でインストールまで完了する。
nodeのバージョンはパラレル上で存在する(ブランチを切っているのと同じ)。そのため、あるバージョンでnpmでファイルを追加しても、他のバージョンに作用はしないということに注意する。