标签: yarn-workspaces

纱线工作区、反应、monorepo 问题与冲突库版本

我正在试验纱线工作区 monorepo。它由一个用 创建的 TestProjectcreate-react-app和一个用创建的 SharedLib1 组成create-react-library。TestProject 从 SharedLib1 导入代码。问题是,TestProject 使用依赖于 babel-jest ^24.9.0 的 react-scripts 3.3.0,而 SharedLib1 使用依赖于 babel-jest 22.4.4 的 react-scripts-ts ^2.16.0。yarn start在 TestProject 中运行时,它抱怨:

The react-scripts package provided by Create React App requires a dependency:

  "babel-jest": "^24.9.0"

Don't try to install it manually: your package manager does it automatically.
However, a different version of babel-jest was detected higher up in the tree:

  /monoRepo/node_modules/babel-jest (version: 22.4.4) 
Run Code Online (Sandbox Code Playgroud)

我可以通过SKIP_PREFLIGHT_CHECK=true在 TestProject 中设置或手动升级 SharedLib1 中的 react-scripts来禁用错误,但我想知道是否有更好的方法来处理这个问题。 …

reactjs create-react-app monorepo yarnpkg yarn-workspaces

22
推荐指数
1
解决办法
1427
查看次数

工作区仍在吊装的 nohoist

在我的 Monorepo 里面,我有一个包,我想要它的 node_modules 中的所有依赖项。

但无论我做什么,它的 node_modules 仍然是空的。

因此,出于我的问题的目的,我能够通过以下设置重现该问题

/
 package.json
 lerna.json
 node_modules
 packages/
          A/
            node_modules
            package.json
            index.ts
          B/
            node_modules
            package.json
            index.ts
Run Code Online (Sandbox Code Playgroud)

我为此创建了一个回购

主包.json

{
  "name": "A-B-test",
  "private": true,
  "workspaces": {
    "packages": ["packages/*"],
    "nohoist": [ "**/B" ]
  },
  ...
  "devDependencies": {
    "lerna": "^3.13.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

B/package.json 好像

{
  "name": "@scaljeri/B",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "angular": "^1.7.8"
  },
  "devDependencies": {
    "browserify": "^16.2.3",
    "typescript": "^3.5.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我yarn在项目的根目录中运行时,所有依赖项都安装在根目录中node_modules

纱线版本:1.16.0 节点:12.4.0

任何建议可能是什么问题?

monorepo yarnpkg yarn-workspaces

17
推荐指数
3
解决办法
9862
查看次数

如何从具有纱线工作空间的monorepo中的nodejs项目构建泊坞窗图像

我们目前正在与我们的团队一起在我们的网站上查看CI/CD.我们最近也适应了monorepo结构,因为这使我们的依赖和概述更容易.目前测试等已准备好用于CI,但我现在正在进行部署.我想创建所需包的docker镜像.

我考虑的事情:

1)将完整的monorepo拉入docker项目,但在我们的项目中运行yarn安装导致总项目大小约为700MB,这主要是由于我们的本机应用程序甚至不应该有docker镜像.此外,每次我们必须部署新版本时,这都会导致图像拉长时间过长

2)以某种方式捆绑我的项目.我们的前端我们有工作设置,所以应该没问题.但是我只是尝试将webpack添加到我们的快速api中,并因此问题在我的捆绑包中出现错误:https://github.com/mapbox/node-pre-gyp/issues/308

3)我尝试仅在所需项目中运行yarn安装,但这仍将为我的所有项目安装我的node_modules.

4)运行npm包:pkg.这导致单个文件准备好在具有特定节点版本的特定系统上运行.这可行,但我不确定这将如何处理错误和崩溃.

5)另一种解决方案是将项目复制出工作区并在那里运行纱线安装.这个问题是使用纱线工作区(隐式链接的依赖关系)就好了.我必须明确地添加我的其他工作区依赖项.一种可能性是从某个提交哈希引用它们,我现在要测试它.(编辑:您似乎无法将子目录引用为纱线包)

6)???

我想知道我是否缺少一个选项,只为某个项目只有所需的node_modules,所以我可以保持我的docker图像小.

node.js express docker monorepo yarn-workspaces

16
推荐指数
1
解决办法
1658
查看次数

错误:@vitejs/plugin-vue 要求 vue (>=3.2.13) 或 @vue/compiler-sfc 存在于依赖关系树中

我正在使用带有模块 federation 和 vue3 的 berry 版本的纱线。
当我运行这些命令来创建项目的基础时:

mkdir vue-error
yarn set version stable
yarn plugin import workspace-tools
yarn init -pw
cd packages
npx create-mf-app # body
yarn
yarn workspace body add single-spa-vue
cd body
yarn start
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[webpack-cli] Failed to load '/Users/test/Development/trash/vue-error/packages/body/webpack.config.js' config
[webpack-cli] Error: @vitejs/plugin-vue requires vue (>=3.2.13) or @vue/compiler-sfc to be present in the dependency tree.
    at Object.<anonymous> (/Users/jcuzmar/Development/trash/vue-error/.yarn/__virtual__/vue-loader-virtual-8ff7836f4c/0/cache/vue-loader-npm-16.8.3-e05f7daca3-7c0566847b.zip/node_modules/vue-loader/dist/compiler.js:14:15)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.external_module_.Module._load (/Users/jcuzmar/Development/trash/vue-error/.pnp.cjs:17959:14)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18) …
Run Code Online (Sandbox Code Playgroud)

webpack vue.js yarn-workspaces vuejs3 webpack-module-federation

16
推荐指数
1
解决办法
3万
查看次数

纱线:找不到模块

我有一个纱线工作区,其中设置了文件夹publicserver. 我在 VS Code 中使用 TypeScript。在任何没有随包预安装类型的模块上,我在 VS Code 中收到错误:

Cannot find module 'x'
Run Code Online (Sandbox Code Playgroud)

但是,IntelliSense 将显示x为建议。我两个都有x@types/x如果我安装的话似乎没有什么区别@types/x。谢谢

Windows 1909 (Latest)
Visual Studio Code 1.43 (Latest)
TypeScript ^3.8.3 (Latest)
Yarn 2.0.0-rc.30 (Latest)
Run Code Online (Sandbox Code Playgroud)

另外,我试图找到纱线的类型根,但没有。有人可以告诉我类型根目录在哪里吗?

typescript yarnpkg yarn-workspaces

15
推荐指数
3
解决办法
2万
查看次数

npm 注册表似乎有问题(返回未定义)。重试

我正在尝试在我的项目中安装依赖项,但是当我运行时yarn install出现以下错误

\n
[2/5]   Resolving packages...\ninfo There appears to be trouble with the npm registry (returned undefined). Retrying...\ninfo There appears to be trouble with the npm registry (returned undefined). Retrying...\ninfo There appears to be trouble with the npm registry (returned undefined). Retrying...\ninfo There appears to be trouble with the npm registry (returned undefined). Retrying...\n\xe2\xa0\x81 axios@0.21.1/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:66965\n            throw new (_errors || _load_errors()).ResponseError(_this3.reporter.lang('requestFailed', description), res.statusCode);\n            ^\n\nResponseError: Request failed "502 Bad Gateway"\n    at ResponseError.ExtendableBuiltin (/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:696:66)\n    at new ResponseError (/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:802:124)\n    at Request.params.callback [as …
Run Code Online (Sandbox Code Playgroud)

npm reactjs npm-install yarnpkg yarn-workspaces

15
推荐指数
1
解决办法
1万
查看次数

monorepo 中的“'rootDir' 预计包含所有源文件”

我正在为客户将一个大型的 monorepo 转换为 TypeScript,但是,我自己对 TS 还很陌生,并且遇到了一个错误,我找不到明显的修复方法。

TS6059: File '[path to repo root]/packages/config/globals.ts' is not under 'rootDir' '[path to repo root]/packages/components/src'. 'rootDir' is expected to contain all source files.

globals.ts文件不应该存在于components包中,它属于config包,所以我不太明白这个错误。

我在存储库的根目录中有一个主 tsconfig 文件(https://github.com/serge-web/serge/blob/feature/333-game-admin-channel/tsconfig.json),然后每个包都有自己的tsconfig 文件扩展了该文件。该components包的位置在这里: https: //github.com/serge-web/serge/blob/feature/333-game-admin-channel/packages/components/tsconfig.json

我假设我错误地扩展了包中的 tsconfig 文件,或者我references错误地使用了它,但我找不到正确的方法来执行此操作。

如果您需要查看结构,这里是存储库的链接:https://github.com/serge-web/serge/tree/feature/333-game-admin-channel

typescript lerna monorepo yarnpkg yarn-workspaces

14
推荐指数
1
解决办法
2万
查看次数

我可以将 NPX 与纱线一起使用吗?

我有一个正在使用的项目yarnyarn我已经使用、 I runyarn dev等安装了所有软件包。现在我正在遵循一个教程,该教程要求我使用它npx来设置包。- 我想知道我是否可以继续这样做,或者我是否最终会在这里混合一些东西,因为npx据我所知,与 相关npm

javascript package-managers npm npx yarn-workspaces

14
推荐指数
1
解决办法
1万
查看次数

Lerna、yarn 和 Typescript:找不到模块或其相应的类型声明

我有一个 lerna + 纱线工作区 monorepo,具有独立的版本控制。我在导入同级包时遇到问题。

我有两个包,其中一个应该依赖于另一个,如下所示:

(root)
  |--packages
       |--money
       |--money-standard-units
            |--{deps. on money}
Run Code Online (Sandbox Code Playgroud)

在 的内部money-standard-deps,我尝试导入 的导出成员,money但无法这样做;我收到以下消息:

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

我知道这个问题可以通过添加money到tsconfigpaths的数组中来解决,但我想依赖于构建的包,因为它们将单独发布。我希望它能够有效地工作,就好像它是两个单独的存储库一样。money-standard-libs

我创建了一个演示存储库

typescript lerna yarnpkg yarn-workspaces

13
推荐指数
1
解决办法
2万
查看次数

如何使用 Yarn 工作区将共享依赖项添加到 monorepo?

我正在使用 Yarn 的工作区功能来管理单一存储库。一些单独的工作区在自己的 中定义了自己的依赖项package.json,但是我也有一些共享的依赖项(一些用于测试整个存储库,一些由所有工作区使用)。我如何以正确的方式声明这些?

如果我尝试将它们添加到 root 中package.json,Yarn 会发出警告。但是,在升级依赖项时,向所有n工作区添加相同的依赖项(有很多并且可能会增长)似乎很乏味且难以维护。

typescript将共享依赖项(例如, 或jestserverless)添加到每个单独的工作区是否正确?

使用 Yarn 1/经典。

我还发现了Yarn Workspaces:我应该如何以及在哪里安装我的依赖项?但没有得到解答 Yarn 工作区共享依赖项谈论使用对等依赖项,但用户遇到了麻烦

yarnpkg yarn-workspaces

13
推荐指数
1
解决办法
1万
查看次数