yarn自我更新抛出OAuth2身份验证错误

nik*_*ohn 13 runtime-error npm oauth2 yarnpkg

我正在尝试使用该yarn self-update命令来查看它是如何工作的,但它不会更新Yarn版本,而是抛出OAuth错误,如此

yarn self-update
yarn self-update v0.15.1
error OAuth2 authentication requires a token or key & secret to be set
    at __dirname.authenticate (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/node_modules/github/lib/index.js:334:23)
    at Object.<anonymous> (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/lib/cli/commands/self-update.js:30:12)
    at next (native)
    at step (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
    at /Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
    at new Promise (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/node_modules/core-js/library/modules/es6.promise.js:191:7)
    at Object.<anonymous> (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    at Object.run (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/lib/cli/commands/self-update.js:99:17)
    at run (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/lib/cli/index.js:237:18)
    at config.init.then (/Users/nikjohn/.nvm/versions/node/v6.4.0/lib/node_modules/yarn/lib/cli/index.js:345:12)
info Visit http://yarnpkg.com/en/docs/cli/self-update for documentation about this command.
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样做以及需要做些什么才能解决这个问题?根据这里的文档,这个命令没有任何这样的OAuth依赖和恕我直言,它也不应该.

看起来这里已有PR了

编辑:进一步的研究表明,这是纱线的一个已知错误.但仍无法解决问题.如果修复程序作为新版本推出,那将是一个奇怪的catch22,但是由于命令失败,用户无法更新.一种可能的解决方案是yarn self-update [tag]代替yarn self-update,但这仍然是一个错误.*

编辑:我意识到还有另一种解决方法

yarn version
yarn version <version-number>
Run Code Online (Sandbox Code Playgroud)

omi*_*nes 14

使用npm -g install yarn更新它.我得到了纱线v0.16.0,现在yarn self-update似乎工作.


Mic*_*rin 11

首先使用以下命令删除Yarn:

rm -rf ~/.yarn
Run Code Online (Sandbox Code Playgroud)

然后使用此命令再次安装它(例如):

curl -o- -L https://yarnpkg.com/install.sh | bash
Run Code Online (Sandbox Code Playgroud)