[npm & Bower] Node を Homebrew でインストールした場合でも npm をうまく利用したい(local install 編)
過去に断片的に調べて利用していたものの、色々と混乱したのであらためて再調査。
[markdown]
以下の続きだが、本エントリは Homebrew と関係がない。
> * [Node を Homebrew でインストールした場合でも npm をうまく利用したい(global install 編) | deadwood](https://www.d-wood.com/blog/2015/12/14_7721.html)
以下が参考になる。
> * [01 – What is npm? | npm Documentation](https://docs.npmjs.com/getting-started/what-is-npm)
> * [A Beginner’s Guide to npm — the Node Package Manager](http://www.sitepoint.com/beginners-guide-node-package-manager/)
## init
ローカルプロジェクトは package.json で管理すると便利。
プロジェクトディレクトリで `npm init` を実行するとひな型を作成できる。
`–yes` で入力を省略できる。
“`prettyprinted
% 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”
}
“`
> * [npm: package.json の内容に関する情報 | deadwood](https://www.d-wood.com/blog/2014/09/06_6820.html)
### .npmrc に初期値を登録する
なお .npmrc で `npm init` 時の初期値を指定できる。
“`prettyprinted
% npm set init.license “MIT”
“`
とすると、$HOME/.npmrc に以下が書き込まれる。
“`:~/.npmrc
init.license=MIT
“`
前述 `npm init –yes` の通り、初期値が入力されている。
## install
`npm search` でパッケージを探し、`npm info` でバージョンなどを確認できる。
“`prettyprinted
% npm search grunt-cli
% npm info grunt-cli |less
“`
`npm install` でインストール。
“`prettyprinted
% npm install –save-dev grunt-cli@0.1.13
“`
`@x.x.x` でバージョンの指定も可能。
`–save`, `–save-dev` オプションを付け、package.json にインストールしたパッケージとバージョンを書き込むべき。
## update
`npm outdated` で調べて package.json を書き換える。
“`prettyprinted
% 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
“`
実行。
“`prettyprinted
% npm update
“`
### package.json 内のパッケージを最新バージョンへ一括で書き換える
npm-check-updates を利用すると、まとめて最新バージョンへ書き換えできる。
> * [npm-check-updates: package.json 内の npm version を一括で最新に書き換える | deadwood](https://www.d-wood.com/blog/2014/09/01_6692.html)
## uninstall
`–save`, `–save-dev` オプションを付けて実行すると、package.json の情報も削除してくれる。
“`prettyprinted
% npm uninstall –save-dev grunt-cli
“`
## prune
install, update などでたまったパッケージを掃除する。
“`prettyprinted
%npm prune
“`
## local install したパッケージを cli から利用する
ローカルディレクトリのパスを追加するか、パスを指定して実行をする。
`npm bin` コマンドでパスを取得できるので、これを利用する。
> * [node.js – How to use package installed locally in node_modules? – Stack Overflow](http://stackoverflow.com/questions/9679932/how-to-use-package-installed-locally-in-node-modules)
> * [Zsh – コマンドパスを自動で通し npm install -g しない – Qiita](http://qiita.com/Jxck_/items/8f5d1b70b7b5aa6053ee)
以下を指定し、
“““prettyprinted:.zshenv
alias npm-exec=’PATH=$(npm bin):$PATH’
“`
ファイルを読込直す。
“`prettyprinted
% source ~/.zshenv
“`
`bundle exec` ライクに `npm-exec` で実行。
“`prettyprinted
% npm-exec babel version
5.8.34 (babel-core 5.8.25)
“`
としたが、イマイチうまくいかないので保留。
## run-script
package.json に簡単なスクリプトを登録できる。
> * [npm: run-script でタスクランナーから解放される | deadwood](https://www.d-wood.com/blog/2015/12/10_7716.html)
## 補遺
> * [npmのあまり知られてない機能 10選 – from scratch](http://yosuke-furukawa.hatenablog.com/entry/2014/06/10/100410)
[/markdown]