HomebrewでnpmのCLIツールを管理する brew-npm をご紹介します。
brew-gem が便利
brew-npm の紹介に入る前に、 brew-gem というツールはご存知でしょうか。
macで複数プロジェクトのRubyの開発をしていると、 rbenv や rvm などを使って、プロジェクトごとにRubyのバージョンを切り替えて作業をしている方が多いと思います。
そんな環境で、グローバルにいろいろなディレクトリで使いたいCLIツールなどを、普通にgemでインストールすると、Rubyのバージョンが切り替わったときに使えなくなってしまいます。
# こういうのよくありますよね
$ foreman -v
rbenv: foreman: command not found
The `foreman' command exists in these Ruby versions:
2.7.5
そんなときに brew-gem を使っていると、Homebrewのformulaとしてgemがインストールされ、コマンド実行時のRubyバージョンに関わらず利用することができるようになります。とても便利ですよね。
# こんなコマンドでインストールできます
$ brew gem install foreman
また、パッケージマネージャなどの管理ツールはあまり増やしたくないものです。
すでに利用してるHomebrewで管理することができるようになるのもメリットですね。
brew-gemのnpm版: brew-npm
そんな brew-gem のnpm版が brew-npm です。
nodenv / nvm / nodebrew などを使ってプロジェクトごとに Node.js のバージョンを切り替えて作業をしていても、コマンド実行時のNodeバージョンに関わらずCLIツールを利用することができるようになります。
ここから brew-npm の使い方を紹介していきます。
インストール
Homebrewでインストールできます。
brew install shuuuuun/tap/brew-npm
Rubygemsで入れることもできます。
gem install brew-npm
使い方
npmのインストールは以下のようなコマンドになります。brewのサブコマンドとして利用します。
brew npm install ${NPM_PACKAGE_NAME}
# ex.
brew npm install serverless
特定のバージョンを指定することもできます。
brew npm install ${NPM_PACKAGE_NAME} ${VERSION}
# ex.
brew npm install serverless 3.4.0
インストール後は、そのまま通常どおり利用することができます。
CLIツールはHomebrewのbinパス($(brew --prefix)/bin
)にインストールされるため、ここにPATHが通ってる必要があります。
# ex.
$ which serverless
/opt/homebrew/bin/serverless
※Intel Macの場合はbrew --prefix
は/usr/local
の場合が多いかもしれません
コマンド一覧
サブコマンドの一覧はbrew npm help
で確認できます。
$ brew npm help
Please specify a npm package name (e.g. brew npm command <name>)
install - Install a brew npm, accepts an optional version argument
(e.g. brew npm install <name> [version])
upgrade - Upgrade to the latest version of a brew npm
uninstall - Uninstall a brew npm
reinstall - Reinstall a brew npm
info - Show information for an installed npm
formula - Print out the generated formula for a npm
version - Show version of brew-npm
help - This message
-
install
- npmパッケージをインストール -
upgrade
- インストール済みのnpmパッケージをアップグレード -
uninstall
- インストール済みのnpmパッケージをアンインストール -
reinstall
- インストール済みのnpmパッケージを再インストール -
info
- npmパッケージの情報を表示
Scoped packagesにも対応
また、npmのScoped packagesでも同じようにインストールできます。
(brew-npm v0.3.0以上を利用してください)
# ex.
brew npm install @google/clasp
brew list すると
ちなみに、インストールしたパッケージはbrew list
したときにnpm-
というプレフィックスがついて表示されます。
$ brew list | grep npm-
npm-google-clasp
npm-koko
npm-rgb-hex-cli
npm-serverless
Philosophy
brew-gem と同様ですが、 brew-npm は端末内でグローバルに利用するスタンドアロンツールをインストールするためのもので、開発用のライブラリのインストールは想定していません。
おわりに
- HomebrewでnpmのCLIツールを管理する brew-npm のご紹介でした。ぜひみなさん使ってみてください!
- 不具合など見つけた方はissueなどで優しく教えてください
- プルリクエストも歓迎です