标签: yarnpkg-v2

纱线链接和生产构建

我们使用纱线链接来引用内部包来加速开发工作流程,这非常有帮助,因为我们不必发布每个更改。

但是,当我们想要使用 创建生产版本时yarn install --prod,它不是复制最新的链接版本,而是复制 npmjs.org(已发布版本)中可用的版本。

你遇到过这个问题吗?有没有办法指示yarn在安装过程中使用本地版本而不是选择最新发布的版本?

yarnpkg yarnpkg-v2

7
推荐指数
0
解决办法
676
查看次数

yarn - 快速检查是否满足 `package.json` 和 `yarn.lock` 要求的正确方法?

我想验证我的项目(package.jsonyarn.lock)中的所有依赖项是否都得到满足而无需运行yarn install(构建整个依赖项树并发出网络请求)

起初,我非常希望这样yarn check做。以下命令验证是否满足每个依赖项,package.json 验证已安装的包是否与yarn.lock文件匹配。

yarn check --integrity --verify-tree
Run Code Online (Sandbox Code Playgroud)

但是,文档说从 yarn v2 开始不推荐使用它,而yarn install --check-files应该使用它。

但是文档--check-files使它看起来像是做了一些完全不同的事情。

纱线安装 --check-files

验证 node_modules 中已安装的文件没有被删除。

我还可以验证运行它本质上是运行一个完整的yarn install命令,所以它在这里没有用。

此外,删除yarn check拉取请求还提到了 的行为--check-files并不完全直观。

那么在 yarn v2 及更高版本中运行此检查的支持方式是什么?有没有什么办法可以进行轻量级检查package.jsonyarn.lock而不必像yarn install那样通过网络构建整个依赖树?

FWIW,提出了一个类似的问题npm,解决方案是使用该--dry-run标志,但该标志似乎不存在于yarn.

npm yarnpkg yarn-lock.json yarnpkg-v2

7
推荐指数
1
解决办法
765
查看次数

我应该将 .yarn/cache 文件夹推送到 Github - Yarn2

我最近升级到 Yarn2 并将以下内容添加到我的.gitignore

.yarn/*
!.yarn/cache
!.yarn/releases
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
Run Code Online (Sandbox Code Playgroud)

我仍然使用nodeLinker: node-modules,但是当我推送代码时,.yarn/cache每当升级软件包时,我都会推送带有新文件的文件夹。

该文件夹应该推送到 Git 还是只推送到我的机器中?请指教。

yarnpkg-v2

7
推荐指数
1
解决办法
1969
查看次数

有没有一种方法可以只为yarn2 monorepo中的一个包安装依赖项?

要对yarn 2推荐的所有软件包进行yarn不可变安装yarn workspaces focus --production --all,有没有一种方法可以只对一个工作区执行此操作?原因是我不想将所有依赖项安装到不同应用程序的 docker 容器中。

yarn-workspaces yarnpkg-v2

6
推荐指数
1
解决办法
6857
查看次数

使用 yarn 2 工作区在 monorepo 中的两个项目之间共享打字稿代码

我想在打字稿中设置一个包含客户端部分(react-app)、服务器部分(express)和共享库(utils)的项目。我使用 yarn 2 工作区并希望避免使用 larna(如果可能)。不幸的是,几天以来我一直无法使它工作(以及大量的谷歌搜索......)。尝试运行客户端应用程序时,我收到错误消息:

找不到模块“utils”或其相应的类型声明。TS2307

有谁知道我做错了什么?

这是我的项目结构:

  • 。纱
  • 包裹
    • 客户端(使用 create-react-app 创建)
    • utils(使用 yarn tsc --init 创建)
    • 服务器
  • .pnp.js
  • .yarnrc.yml
  • 包.json
  • 纱线锁

package.json(根):

{
  "private": true,
  "name": "monorepo with shared library and yarn 2 workspaces",
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "client": "yarn workspace client start",
    "server": "yarn workspace server start",
    "prepare": "yarn workspace utils build"
  }
}
Run Code Online (Sandbox Code Playgroud)

实用程序/package.json:

{
    "name": "utils",
    "private": true,
    "version": "1.0.0",
    "main": "dist/index.js",
    "types": "dist/index.d.ts",
    "files": [
        "dist"
    ],
    "devDependencies": {
        "@types/node": "^14.14.22",
        "@typescript-eslint/eslint-plugin": …
Run Code Online (Sandbox Code Playgroud)

shared-libraries typescript yarn-workspaces yarn-v2 yarnpkg-v2

6
推荐指数
1
解决办法
1585
查看次数

在 monorepo 中,是否可以将包配置为“如果可以的话,使用未编译的代码”?

我正在玩 Yarn 2,我想做这样的事情。

我有一个结构的单一存储库:

/
  packages/ 
    shared-ts/
       package.json
       src/
       lib*/ 
    app-ts/
       package.json
       src/
       lib*/ 
    app-js/ 
       package.json
       src/
       lib*/ 
Run Code Online (Sandbox Code Playgroud)

wherelib*表示该文件夹被 gitignored,但它是编译后的代码所在的位置。

shared-ts在此示例中,我有一个由两个应用程序使用的依赖库,app-ts并且app-js.

传统方法

配置像这样的 monorepo 的传统方法是,shared-ts我会有一个 package.json,如下所示:

"main": "lib/index.js"
"scripts" : {
    "build": "tsc" 
}

Run Code Online (Sandbox Code Playgroud)

脚本将在其中build构建index.jsindex.d.ts放入 lib 文件夹中。

当两者app-tsapp-js解析包时,他们会在 lib 文件夹中查找并找到index.js和 的app-ts情况 - index.d.ts.

这工作得很好,除了开发人员需要记住运行build脚本(如果他们进行了更改)shared-ts以便传播更改。

这可能会成为问题的地方是存在多层依赖关系的地方。

尝试围绕 1 点main进行工作 …

node.js typescript package.json yarnpkg yarnpkg-v2

6
推荐指数
1
解决办法
1461
查看次数

纱线版本之间的差异

我已经使用yarn 1.x有一段时间了,通过npm安装。今天,我想使用一个插件,经过一番研究后,我安装了像yarn 3.x 这样的插件。我不知道还有其他受支持的纱线版本。老实说,现在我对纱线版本控制完全感到困惑。我对向后兼容性、文件夹结构以及 1.x 之间的差异特别感到困惑;2.x;3.x。我尝试查看每个版本的文档,查看 github 存储库并检查互联网,但我无法找到一些比较/解释为什么会发生这种情况,为什么所有版本都受到支持和维护(在某种程度上)。

我想知道的是:是否有任何网站/文章解释这种奇怪的版本控制的差异和推理?与纱线版本的向后兼容性是什么?推荐的yarn版本是什么?

我知道这不是一个技术问题,但我不知道还能问哪里。我不是在寻求意见,而是在寻求事实或资源(文章、github 问题……)来自己研究这个问题。

yarnpkg yarn-v2 yarnpkg-v2

6
推荐指数
1
解决办法
3868
查看次数

在yarn v3中,我们如何获取仅产品依赖项的列表

我需要获取仅包含yarn 3 的prod 依赖项的列表。在官方文档中找不到仅列出prod 或devDependency 的任何选项。

对应的npm命令是npm list --omit=dev

获取所有依赖项列表的可用命令是:yarn info --recursive

有没有一种解决方法可以仅获取yarn v3的产品依赖项列表?

package.json yarn-workspaces yarnpkg-v2 yarn-v3

6
推荐指数
0
解决办法
795
查看次数

需要使用 Yarn 3 和 TypeScript 在 monorepo 中设置 eslint 的帮助

我一直在绞尽脑汁地尝试在我的 monorepo 中设置 ESlint 配置。我使用 Yarn 3.2.4 作为包管理器。这是包含示例项目的 GitHub 存储库。。这是项目结构:

\n
/monorepo\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /configs\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /eslint\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /jest\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /prettier\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 /typescript\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tsconfig.json\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /packages\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 /mypackage\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .eslintrc.js\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\n
Run Code Online (Sandbox Code Playgroud)\n

具有以下内容:

\n
    \n
  • /monorepo/package.json(根包.json)
  • \n
\n
/monorepo\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /configs\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /eslint\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /jest\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 …
Run Code Online (Sandbox Code Playgroud)

node.js typescript eslint yarn-workspaces yarnpkg-v2

6
推荐指数
1
解决办法
6275
查看次数

yarn2 中的自定义模块文件夹

我目前正在升级到yarn 2,对于经典yarn(yarn 1),我们曾经使用此处--modules-folder描述的方法将包安装在自定义文件夹中

我没有找到等效的选项或使用纱线 2 来做到这一点的方法。

yarnpkg yarnpkg-v2

5
推荐指数
1
解决办法
184
查看次数