【问题标题】:Can you use Yarn2 PnP "zero-installs" on a machine without Yarn?你可以在没有 Yarn 的机器上使用 Yarn2 PnP “零安装”吗?
【发布时间】:2021-03-14 17:07:06
【问题描述】:

我正在使用 Yarn 2 的 "zero install" 东西作为一个小工具来解决我老板的一个随机过敏问题。 (他对必须在克隆的 repo 上运行 npm i 以使其工作的期望感到不满,并坚持将 node_modules 放入版本控制中不知何故不是一个可怕的想法;所以我想以此为借口潜入纱线,并阻止他通过。)

据我了解,“零安装”基本上意味着 Yarn 试图使将依赖项安装状态放入 VCS 中实际上是可行的。然而,要运行实际的应用程序,Yarn 需要用其 PnP 机制替换 Node 的依赖解析。对于从 Yarn 脚本运行的 Node 实例,这会自动发生,但运行 Yarn 脚本需要 Yarn 可用。 (请记住,我们正在努力解决有人在安装东西时任意固执的问题。)

我最好的方法是将我的start 脚本设置为npx yarn node app.js,但这感觉不必要地复杂;毕竟,使用 Yarn 2,工具本身存储在 .yarn/releases 中,全局 yarn 命令使用它,但这是一些捆绑器输出的一个巨大的缩小 blob,我不知道如何开始调用它。

【问题讨论】:

    标签: node.js yarnpkg yarnpkg-v2


    【解决方案1】:

    要注册 Yarn 生成的 PnP 运行时,只需从命令行中要求 .pnp.js 就足够了,因此您可以通过以下方式运行 app.js

    node -r ./.pnp app.js

    还有另一种方法可以做到这一点:您可以在应用程序中要求.pnp.js,但是当您不是从命令行执行此操作时,您还必须在返回的 PnP API 实例上调用 setup 函数,只需添加此行在app.js之上:

    require('./.pnp').setup();

    【讨论】:

    • 哦,真的超级方便。
    猜你喜欢
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多