わすれっぽいきみえ

みらいのじぶんにやさしくしてやる

年末のPCお掃除

今年も色々あったのだけど、PCの中をあまりにも整理できてなかったので、ちょっとだけ掃除してた。

yarnをbrew経由で入れ直す

nodeにもpackage-lock.jsonが使えるバージョンが出たので、yarnを捨てようかなと思ってたんだけど、yarn自体はまだ開発されてるっぽいし急に乗り換える気にまだなれなくて、引き続き使うことにした。

kimikimi714.hatenablog.com

去年以来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の見直し

もともとはとてもシンプルなものを作ってたんだが

www.gitignore.io

こういったサービスがあるのを知ったので、自分が使ってるツールの名前を入れて生成してもらった。ただし .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もいじれるようになった。

結果

これになりました。

github.com

*1:前のバージョンを忘れた

*2:すでにasarとbowerは削除したあとだったのでリストに載ってない。その分 yarn global list 実行後のパッケージと差分がある。