我想开始使用 yarn。
我在 Windows 上使用 cygwin,我启动并输入:
$yarn init
我得到:
$ yarn init
yarn init v1.12.3
error An unexpected error occurred: "Can't answer a question unless a user TTY".
info If you think this is a bug, please open a bug report with the information provided in "C:\\home\\code\\repos\\pwa\\yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/init for documentation about this command.
什么意思:“除非用户 TTY,否则无法回答问题”?
我是否无法将 cygwin 提供的 bash shell 与 yarn 一起使用?我找不到任何文件告诉我应该下载和使用什么终端/shell。
我需要使用带有脚本、别名、命令行补全的 bash shell 来提高工作效率,并且可以访问用于脚本编写的所有 gnu 命令,因此 DOS 命令提示符或 powershell 不是一个选项。
最佳答案
是的!
TL;DR:更新到最新的 yarn 版本。跳到最后查看如何获取最新版本。它并不像听起来那么简单。
我相信如果您修改 /c/Program Files/nodejs/yarn
文件以在 cygwin 中正常工作,它可以在 yarn 1.x 中完成。我不明白为什么这个脚本是这样写的,但我明白为什么它不能在 cygwin 终端上运行:对于某些路径,它将它们转换为 Windows 路径,然后将 linux 路径附加到它的末尾.我打赌如果您修改它以使用 linux(即 cygwin)路径,yarn 1.x 将正确运行。
但是,这不是一个很好的答案,因为这都是假设。幸运的是,有一个不是假设的更简单的解决方案:升级到最新的 yarn
。一旦我这样做了,cygwin 就可以正常工作了。他们可能修复了旧版本中的错误。
您可能会对自己说,“我刚刚运行了 npm install yarn
,所以我已经有了最新版本。”这并不意味着您拥有最新的 yarn 。出于某种原因,这会安装最新版本的 1.x。 yarn 的最新版本是 3.x。
此外,要从 1.x 升级到最新版本,您需要运行一些临时命令——而不是 npm install
其他命令。
这里是 the guide to go from yarn 1.x to latest :
运行
npm install -g yarn
将全局 yarn 版本更新到最新的 v1进入你的项目目录
运行
yarn set version berry
启用v2如果您使用的是 .npmrc 或 .yarnrc,则需要将它们转换为新格式
在您的 .yarnrc.yml 文件中添加 nodeLinker: node-modules
我不知道第 4 步是什么意思。但是我当前的 .yarnrc 看起来像这样:
yarnPath: ".yarn/releases/yarn-berry.cjs" nodeLinker: node-modules
提交到目前为止的更改(yarn-X.Y.Z.js、.yarnrc.yml、...)
运行
yarn install
迁移锁文件像往常一样使用
yarn
。
关于node.js - 是否可以在 Windows 上使用 Cygwin 来开发带有 Yarn 的 Node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891625/