npmのコマンドのまとめに関して。
Contents
npmとは?
nodeによるライブラリのパッケージ管理の手法。PHPでいうcomposer。composerがcomposer.jsonで管理するのと同様。package.jsonというファイルで依存ライブラリを管理する。
インストールされた記録などはpackage-lock.jsonに記録される。
よく使うコマンド
npm init -y
package.jsonをディフォルトで生成するコマンド。
npm install パッケージ名(npm -i パッケージ名)
パッケージのインストール。これをすることで./node_modules
以下にライブラリがインストールされる。npm install パッケージ名@バージョン
などの指定もできる。
以下はオプション
-g
通常はカレントディレクトリ以下に有効だが、-gのオプションはグローバル(環境全体になる)にインストールされる。(ホームディレクトリに./node_modules
がインストールされる)
–save-dev(-D)
サイトの開発時のみ必要な場合はこのオプションが必要になる。主に他の人間がnpm install
をした時にこのライブラリが読み込まれるかどうかが変わってくる。
勉強メモ/npmの使い方(node.js=v0.11.16, npm=2.3.0, 2015-03時点)
npm installの–saveと–save-devの違いと-g
npm uninstall
アンインストール。依存ライブラリの関係があるのでnode_modules以下をrmすると不具合が起こる。
npm list –depth==0
カレントディレクトリのプロジェクトにインストールされているライブラリの一覧。--depth==0
をつけないと再帰的処理が走るのでつけたほうが無難。-g
をつけるとグローバル環境。
npxコマンド
node_modules
以下にインストールされたライブラリは例えば./node_modules/node-sass/bin/node-sass sample.scss sample.css
などのコマンドで実行することが可能ですが、長く面倒なためnpx node-sass sample.scss sample.css
と短縮が可能。
npm runコマンド
package.jsonのscriptに記述することで特定の処理を動かすことができます。
1 2 3 4 5 6 7 8 9 |
"scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, |
上記のように書かれていた場合,npm run dev
とうつとnpm run development
を実行したことになり、結果として、
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
を実行することになります。
ちなみに別階層へのインストール、ビルドをしたい場合は、 --prefix をつければOKです。
npm install <package> --prefix ./path/directory/
npm --prefix ./path/directory run build