グローバルに入れていたgulpがローカルのプロジェクトごとにインストールしたものとバージョンの差がかなり出ていて気になったのでアップデートしました。その時の流れを備忘録としてメモ。
gulpのバージョンを確認してみるとグローバルとローカルにインストールしたものが確認できます。
$ gulp -v [00:00:00] CLI version 1.2.2 [00:00:00] Local version 3.9.1
一旦グローバルのgulpをアンインストールします。gulpのバージョン確認コマンドを叩いてバージョン名が表示されなくなれば削除されています。
$ npm rm --global gulp-cli
改めて下記コマンドでgulpをグローバルにインストールしてみます。
$ npm install -g gulp-cli
すると下記のエラーが表示されてインストールが止まってしまいました、、確認してみると.nodebrew/node/〜配下にあるgulpというシンボリックリンクがnpmで削除できないとのこと。。
npm ERR! Refusing to delete /Users/[USERNAME]/.nodebrew/node/[VERSION]/bin/gulp: ../lib/node_modules/gulp/bin/gulp.js symlink target is not controlled by npm /Users/[USERNAME]/.nodebrew/node/[VERSION] npm ERR! File exists: /Users/[USERNAME]/.nodebrew/node/[VERSION]/bin/gulp npm ERR! Move it away, and try again.
下記コマンドで該当のシンボリックリンクを削除して再度インストールしました。
$ sudo rm /Users/[USERNAME]/.nodebrew/node/v7.5.0/bin/gulp
すると無事に再インストールが完了しバージョンを確認してみるとアップデートされていました。
$ gulp -v [00:00:00] CLI version 2.0.1 [00:00:00] Local version 3.9.1
gulpをグローバルにインストールするのは古い?
ただし、ウェブ上の記事を見ているとどうやら上記のようにgulpをグローバルにインストールするのは古いようで、ローカルにインストールしてプロジェクトごとに使うことが一般的のようです。
gulpのローカルへのインストール方法は過去記事「gulpをローカルにインストールしてプロジェクト内で使用する」にて紹介しています。今回は備忘録として残しましたが、今後はあまり気にしなくてもいいかもしれませんね、、