【问题标题】:Make VS2019 use Yarn instead of NPM让 VS2019 使用 Yarn 代替 NPM
【发布时间】:2021-06-13 22:25:05
【问题描述】:

当我开始运行我的 ASP.Net Core/React webapp 时,它使用 NPM 来下载包。我希望它改用 Yarn。

我可以从命令行使用 Yarn,它可以很好地恢复包。 我还安装了 this 扩展,效果很好,使用 Yarn 恢复包,但只有当我对 package.json 进行更改时。

当我第一次签出代码并点击 Visual Studio 中绿色的“运行”按钮时,我需要一种使用 Yarn 的方法,它尝试运行它,发现 node_modules 丢失,然后尝试下载包。

我认为可能是在 package.json 中的脚本部分添加这种东西

"start": "yarn react-scripts start",
"build": "yarn react-scripts build",

但到目前为止它始终使用 NPM。

背景:在升级一些包以解决其他一些问题的过程中,NPM 弄得一团糟,而 Yarn 做得很好。

谢谢

【问题讨论】:

  • 为什么?您要解决的问题是什么? (如果你有 node,你就有 npm,包可以利用这个事实来管理他们自己的脚本,即使你个人喜欢你自己的代码的 yarn)
  • 如果我使用 NPM 来恢复包(在一个似乎只有 Yarn 可以应付的大升级之后 - 运行 'npm audit fix --force 的结果),如果我手动使用我的解决方案可以完美运行Yarn 来恢复包(通过在 ClientApp 文件夹中运行'yarn')。但是当其他人来克隆解决方案时,他们只会使用默认行为并尝试在 VS 中运行它,这将使用 NPM 并失败。我知道如果我能告诉 VS 以某种方式使用 Yarn,它会起作用。
  • 我发现只有 yarn 可以帮助我解决的具体问题似乎是将 react-scripts 升级到 4.0.3(我认为),这是一个“重大变化”。
  • react-scripts 100% 与 npm 一起使用,它由 Facebook 的 React 团队维护,并且将保证适用于默认节点安装,这意味着没有纱线。跨度>

标签: reactjs asp.net-core yarnpkg


【解决方案1】:

答案就在 CSPROJ 文件中。我不熟悉 yarn 无法将其与 npm 正确交换,但这就是 VS 能够构建和发布 dotnet + react/angular/vue 项目的方式。

如果你做一个文件 -> 新的 ReactJs 应用程序,你可以相当容易地剖析 CSPROJ。

例如;这里VS是挂钩到BeforeTargets="Build"的,所以项目构建的时候可以执行npm install

<Target Name="DebugEnsureNodeEnv" BeforeTargets="Build" Condition=" '$(Configuration)' == 'Debug' And !Exists('$(SpaRoot)node_modules') ">
    ...
    <Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
</Target>

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 2020-04-08
    • 2020-09-08
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多