yarnpkgは~/.yarnrcを見ている

なので、シェルをカスタムするためのオレオレ設定を ~/.xxxrc に書いてるとあかんよ、という話。

yarnpkg.com

yarnを使おうとしてインストールしたけど動かなかった。

$ yarn init
yarn init v0.15.1
error SyntaxError: Unknown token 1:0
    at Parser.unexpected (/usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/lib-legacy/lockfile/parse.js:218:11)
    at Parser.parse (/usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/lib-legacy/lockfile/parse.js:323:14)
    at exports.default (/usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/lib-legacy/lockfile/parse.js:13:17)
    at /usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/lib-legacy/registries/yarn-registry.js:105:62
    at next (native)
    at step (/usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
    at /usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:28:20
    at run (/usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/node_modules/core-js/library/modules/es6.promise.js:87:22)
    at /usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/node_modules/core-js/library/modules/es6.promise.js:100:28
    at flush (/usr/local/Cellar/yarn/0.15.1/libexec/lib/node_modules/yarn/node_modules/core-js/library/modules/_microtask.js:18:9)

lockfile がどうのと言っているが、 yarn.lock ファイルは作ってない。 GitHubのIssueを漁ったところ

Getting SyntaxError when running basic command · Issue #613 · yarnpkg/yarn · GitHub

~/.yarnrc が原因だと判明。

私は、色々なツール・コマンド用のオレオレ設定を ~/.xxxrc に書いて source で読み込むようにしていた。 その癖で ~/.yarnrc を作って、 export PATH=~/.yarn/bin:$PATH などと設定していたのだけど、それが悪かった。

現在のyarnは、yarn自身の設定を ~/.yarnrc から読み込む。

https://github.com/yarnpkg/yarn/blob/b0611a6ee5220b0b1e955b271b6140640158f96c/src/registries/yarn-registry.js#L50

設定ファイルの管理場所考え直そう..