Node.jsとかnpmについての基礎的な部分
Node.jsとは
Node.jsとは、サーバサイド用のjavascript
シングルスレッドとか、ノンブロッキングI/Oとか、細かいところは省く(というかそこまで理解してない)
じゃあクライアントサイド用のjavascriptは?といえば、それが今まで使ってきていたjsなのだろう(多分)
サーバサイドで使えるようになったからそういう風に言われているのでは
npmとは
Node Package Managerの略
Node.jsのパッケージ管理ツール
gulpとかbrowserifyとか色々ある
Node.jsの機能の利用は、基本的にnpmを通して使うことが多い
npmの使い方
$ npm init
package.jsonを作成$ npm install
package.jsonが存在する場合、その構成に従ったパッケージのインストールを行う$ npm install -g <package_name>
グローバル環境にパッケージをインストール
インストールしたパッケージ(コマンド)を、どこからでも利用可能になる
※ よほど汎用的なものでない限り非推奨
僕がnpm installに-gをつけないわけ$ npm install --save/--save-dev/--save-optional <package_name>
ローカル(現在のパスの下)にパッケージをインストール
node_modulesというフォルダが作成される
そしてpackage.jsonにパッケージ情報が追加される
一緒にpackage-lock.jsonも追加される※ package-lock.jsonとは
node_modulesやpackage.jsonが変更されたときに自動生成される
パッケージのバージョンログなどが含まれている
開発者間のパッケージバージョンの同一性を担保する
npm5から導入された package-lock.jsonについて - kakts-log
引数によって、package.jsonの以下3種類のどこかに割り当てられる
・ dependencies
・ devDependencies
・ optinonalDependencies
なにも書かない場合はdependencies
勉強メモ/npmの使い方(node.js=v0.11.16, npm=2.3.0, 2015-03時点)
・ dependencies
他の人が共有する際にインストールされる場所
npm install
でdependencies下のパッケージがインストールされる
・ devDependencies
開発者専用のパッケージ群
・ optinonalDependencies
npm install
でインストールされるが、失敗しても無視される(らしい)
インストールしたものはjsファイルで利用することができるようになる
例えば、npm install hoge
とした場合、
const hoge = require('hoge')
として利用できる
$npm uninstall/rm -g <package_name>
グローバルのパッケージのアンインストール$ npm uninstall/rm <package_name>
ローカルのパッケージのアンインストール$ npm update -g <package_name>
グローバルのパッケージのアップデート$ npm update <package_name>
ローカルのパッケージのアップデート
package.jsonのscript設定
package.jsonには、scriptタグがある
ここに色々追加することで、コマンド上でパッケージを実行することが可能となる
デフォルトでは、以下のようになっている
"scripts": { "test": "echo \"Error: no test specified\" && exit 1" }
このとき、npm run test --silent
を実行することで
Error: no test specified
が表示される(--silent
をつけたのはエラーログを出さないため)
npm run testするときはnpmログを切ったほうがいい
このscriptタグ内を設定して自由にコマンドを追加できる
また、start
コマンドは特殊なコマンドとして登録されており、npm start
で実行できるようになっている
package.jsonの詳しい中身について:package.jsonの中身を理解する
参考サイト