[npm & Bower] Node を Homebrew でインストールした場合でも npm をうまく利用したい(local install 編)

過去に断片的に調べて利用していたものの、色々と混乱したのであらためて再調査。

以下の続きだが、本エントリは Homebrew と関係がない。

以下が参考になる。

init

ローカルプロジェクトは package.json で管理すると便利。
プロジェクトディレクトリで npm init を実行するとひな型を作成できる。
--yes で入力を省略できる。

% npm init --yes
Wrote to /Users/****/projects/test_npm/package.json:
{
  "name": "test_npm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "MIT"
}

.npmrc に初期値を登録する

なお .npmrc で npm init 時の初期値を指定できる。

% npm set init.license "MIT"

とすると、$HOME/.npmrc に以下が書き込まれる。

~/.npmrc
init.license=MIT

前述 npm init --yes の通り、初期値が入力されている。

install

npm search でパッケージを探し、npm info でバージョンなどを確認できる。

% npm search grunt-cli
% npm info grunt-cli |less

npm install でインストール。

% npm install --save-dev grunt-cli@0.1.13

@x.x.x でバージョンの指定も可能。
--save, --save-dev オプションを付け、package.json にインストールしたパッケージとバージョンを書き込むべき。

update

npm outdated で調べて package.json を書き換える。

% npm outdated
Package      Current  Wanted  Latest  Location
babel         5.8.34  5.8.34  6.3.13  test_es6
babel-core    5.8.25  6.3.17  6.3.17  test_es6
grunt-babel    5.0.3   5.0.3   6.0.0  test_es6

実行。

% npm update

package.json 内のパッケージを最新バージョンへ一括で書き換える

npm-check-updates を利用すると、まとめて最新バージョンへ書き換えできる。

uninstall

--save, --save-dev オプションを付けて実行すると、package.json の情報も削除してくれる。

% npm uninstall --save-dev grunt-cli

prune

install, update などでたまったパッケージを掃除する。

%npm prune

local install したパッケージを cli から利用する

ローカルディレクトリのパスを追加するか、パスを指定して実行をする。
npm bin コマンドでパスを取得できるので、これを利用する。

以下を指定し、

.zshenv
alias npm-exec='PATH=$(npm bin):$PATH'

ファイルを読込直す。

% source ~/.zshenv

bundle exec ライクに npm-exec で実行。

% npm-exec babel version
5.8.34 (babel-core 5.8.25)

としたが、イマイチうまくいかないので保留。

run-script

package.json に簡単なスクリプトを登録できる。

補遺