【问题标题】:Is it possible to use Cygwin on Windows to develop Node.js apps with Yarn?是否可以在 Windows 上使用 Cygwin 使用 Yarn 开发 Node.js 应用程序?
【发布时间】:2019-05-22 07:54:55
【问题描述】:

我想开始使用 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 提供的带有 yarn 的 bash shell?我找不到任何文件告诉我应该下载和使用什么终端/shell。

我需要使用带有脚本、别名、命令行补全的 bash shell 来提高工作效率,并且可以访问用于编写脚本的各种 gnu 命令,因此不能选择 DOS 命令提示符或 powershell。

【问题讨论】:

标签: node.js npm yarnpkg


【解决方案1】:

是的!

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,所以我已经有了最新版本。”这并不意味着你有最新的纱线。出于某种原因,这会安装最新版本的 1.x。 yarn 最新版本是 3.x。

此外,要从 1.x 升级到最新版本,您需要运行一些临时命令 - 而不是 npm installing 其他命令。

这里是the guide to go from yarn 1.x to latest

  1. 运行npm install -g yarn将全局yarn版本更新到最新的v1

  2. 进入你的项目目录

  3. 运行 yarn set version berry 以启用 v2

  4. 如果您使用 .npmrc 或 .yarnrc,则需要将它们转换为新格式

  5. 在你的 .yarnrc.yml 文件中添加 nodeLinker: node-modules

    我不知道第 4 步是什么意思。但我当前的 .yarnrc 看起来像这样:

    yarnPath: ".yarn/releases/yarn-berry.cjs"
    nodeLinker: node-modules
    
  6. 提交到目前为止的更改(yarn-X.Y.Z.js、.yarnrc.yml、...)

  7. 运行yarn install迁移锁文件

  8. 像往常一样使用yarn

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多