今年も色々あったのだけど、PCの中をあまりにも整理できてなかったので、ちょっとだけ掃除してた。
yarnをbrew経由で入れ直す
nodeにもpackage-lock.jsonが使えるバージョンが出たので、yarnを捨てようかなと思ってたんだけど、yarn自体はまだ開発されてるっぽいし急に乗り換える気にまだなれなくて、引き続き使うことにした。
去年以来updateしてなかったのでyarnのバージョンをあげようと思った。
$ yarn self-update
これを実行したらupdateされると思ったんだけど、yarn self-update | Yarnに
Note: self-update is currently not available, which means updates must be done manually. See issue #1139 for details.
と記載があってダメだった。なのでnpm経由で入れたyarnをhomebrew経由にしてupdateしやすくしておく。
$ npm remove -g yarn $ type yarn yarn not found $ brew install yarn $ type yarn yarn is /usr/local/bin/yarn $ yarn --version 1.3.2
これでバージョンが上がった。*1
npm install -gで入れてたパッケージたちをyarn.lock管理下に置く
次は npm install -g
で入れたパッケージたちが何なのかを特定して、yarn.lockで管理できるようにする。これでPCに何かあってもサクっとinstallできる。
https://stackoverflow.com/questions/32628351/export-import-npm-global-packages
これを見ると npm list -g --depth=0
で依存パッケージを無視して、globalに入れたパッケージ名だけを取得できるとあるのでやってみた*2。
$ npm list -g --depth=0 /usr/local/lib ├── generator-chrome-extension@0.7.0 ├── gulp@3.9.0 ├── gulp-cli@2.0.0 ├── jshint@2.8.0 ├── npm@5.6.0 └── yo@2.0.0
まだそんなに入ってないから、手動で yarn global add <package>
で入れちゃう。
$ yarn global list yarn global v1.3.2 info "asar@0.14.0" has binaries: - asar info "bower@1.8.2" has binaries: - bower info "electron-prebuilt@1.4.13" has binaries: - electron info "gulp@3.9.1" has binaries: - gulp info "gulp-cli@2.0.0" has binaries: - gulp info "jshint@2.9.5" has binaries: - jshint info "yo@2.0.0" has binaries: - yo - yo-complete ✨ Done in 4.41s.
gitignoreGlobalの見直し
もともとはとてもシンプルなものを作ってたんだが
こういったサービスがあるのを知ったので、自分が使ってるツールの名前を入れて生成してもらった。ただし .local
だけは自分で追加した。
# 適当なプロジェクトで適当なファイルを置いても問題ないディレクトリの名前 .local
昔、こういうやり方でgitのindexにはのせたくないけどテスト用スクリプトをお気軽におけるディレクトリを作るのがいろいろ試せてよいという趣旨の記事を読んだことがあって、そのやり方を今も踏襲している。
globalなpackage.jsonとyarn.lockをgit管理下に置く
さっき上で yarn global add <package>
実行したわけだが、そのあとのpackage.jsonらはgithubにおいておきたい。まずそれらがどこに出力されるかというと、ここになる。
$ tree -L 1 ~/.config/yarn/global ~/.config/yarn/global ├── node_modules ├── package.json └── yarn.lock 1 directory, 2 files
なのでdotfilesを入れてるディレクトリに実体をおいて、 ~/.config/yarn/global/package.json と ~/.config/yarn/global/yarn.lock にシンボリックリンクを貼り直す。
nodebrewを使ってnodeのバージョンを上げる
nodeのバージョンはとても上がっていたので上げることにした。今本家サイトで確認するとrecommendedは8.9.3だったので8.9.3を入れる。
$ nodebrew install v8.9.3 $ nodebrew ls v7.0.0 v8.9.3 current: v7.0.0 $ nodebrew use v8.9.3 $ nodebrew ls v7.0.0 v8.9.3 current: v8.9.3
これでやろうと思えばpackage-lock.jsonもいじれるようになった。
結果
これになりました。