纱线自我更新抛出 OAuth2 身份验证错误
yarn self-update throws OAuth2 Authentication error
我正在尝试 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.
有谁知道这是为什么以及需要做什么来解决这个问题?根据文档 here,此命令没有任何此类 OAuth 依赖项,恕我直言,它也不应该。
看起来已经有一个 PR here
编辑: 进一步的研究表明这是一个已知的 bug with Yarn。但是仍然没有解决方案。如果将修复程序作为新版本推出,但用户无法更新,因为命令失败,这将是一个奇怪的 catch22。一种可能的解决方案是 yarn self-update [tag]
而不是 yarn self-update
,但这仍然是一个错误。*
编辑: 我意识到还有另一种解决方法
yarn version
yarn version <version-number>
使用npm -g install yarn
更新它。我升级到 yarn v0.16.0,现在 yarn self-update
似乎可以工作了。
TL;DR
更新为≥0.16.0
:
Ubuntu
apt-get update ; apt-get install yarn
MacOS
brew update ; brew upgrade
NPM
npm install -g yarn --update
说明
在 0.15.0
上遇到了问题,调查后发现很多人都提出了同样的问题。
$ yarn --version
0.15.0
正在阅读 release notes for v0.16.0
Fix self-update (#676)
所以简单更新:
yarn self-update
yarn self-update v0.16.0
success Yarn is already using the latest version.
Done in 0.69s.
首先使用此命令删除 Yarn:
rm -rf ~/.yarn
然后再次安装,使用这个命令(例如):
curl -o- -L https://yarnpkg.com/install.sh | bash
npm uninstall -g yarm
npm cache clean
npm install -g yarm
我正在尝试 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.
有谁知道这是为什么以及需要做什么来解决这个问题?根据文档 here,此命令没有任何此类 OAuth 依赖项,恕我直言,它也不应该。
看起来已经有一个 PR here
编辑: 进一步的研究表明这是一个已知的 bug with Yarn。但是仍然没有解决方案。如果将修复程序作为新版本推出,但用户无法更新,因为命令失败,这将是一个奇怪的 catch22。一种可能的解决方案是 yarn self-update [tag]
而不是 yarn self-update
,但这仍然是一个错误。*
编辑: 我意识到还有另一种解决方法
yarn version
yarn version <version-number>
使用npm -g install yarn
更新它。我升级到 yarn v0.16.0,现在 yarn self-update
似乎可以工作了。
TL;DR
更新为≥0.16.0
:
Ubuntu
apt-get update ; apt-get install yarn
MacOS
brew update ; brew upgrade
NPM
npm install -g yarn --update
说明
在 上遇到了问题,调查后发现很多人都提出了同样的问题。0.15.0
$ yarn --version
0.15.0
正在阅读 release notes for v0.16.0
Fix self-update (#676)
所以简单更新:
yarn self-update
yarn self-update v0.16.0
success Yarn is already using the latest version.
Done in 0.69s.
首先使用此命令删除 Yarn:
rm -rf ~/.yarn
然后再次安装,使用这个命令(例如):
curl -o- -L https://yarnpkg.com/install.sh | bash
npm uninstall -g yarm
npm cache clean
npm install -g yarm