【问题标题】:Yarn workspace, react, monorepo issue with conflict library version纱线工作区、反应、monorepo 问题与冲突库版本
【发布时间】:2020-04-27 21:34:39
【问题描述】:

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

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) 

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

myMonorepo
 -web
   -SharedLib1
     -package.json
   -TestProject
     -package.json
 -package.json

myMonoRepo 的Package.json:

{
  "name": "my-mono-repo",
  "version": "0.1.0",
  "private": true,
  "workspaces": [
    "web/*"
  ],
  "nohoist": [
    "**/babel-jest",
    "**/babel-jest/**"
  ]
}

myMonoRepo 的Package.json:

{
  "name": "test-proj",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    ...
    "shared-lib-1": "^1.0.0"
  }
}

以及测试代码App.tsx:

import React from 'react';
import TestComp from 'shared-lib-1';

import './App.css';

const App: React.FC = () => {
  return (
    <div className="App">
      <TestComp text={'aaa'}/>
      Learn React
    </div>
  );
}

export default App;

TestProj 的 node_modules 里面有一个 babel-jest 24.9.0,myMonoRepo 的 node_modules 里面还有一个 22.4.4

【问题讨论】:

  • 您能否分享您在多个node_modules 文件夹中的文件系统上找到babel-jest 的位置?你也可以分享yarn why babel-jest的输出吗?
  • 您可以将示例最小项目发布到公共存储库吗?

标签: reactjs create-react-app yarnpkg monorepo yarn-workspaces


【解决方案1】:

这与在 the GH repo for create-react-app 上打开的问题非常相似(如果不相同),您可以在那里找到更多信息。

也就是说,您可以尝试将 babel-jest 移动到 devDependency 而不是包依赖项。如果这不起作用,您可以尝试Selective dependency resolutions,您可以在其中强制您的项目使用特定版本的babel-jest -

"resolutions": {
   "babel-jest": "^24.9.0",
   "shared-lib-1": "^1.0.0"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2018-11-03
    • 2023-03-03
    • 2018-07-18
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多