Экспериментирую с монорепозиторием пряжи. Он состоит из TestProject, созданного с помощью create-react-app
, и SharedLib1, созданного с помощью create-react-library
. TestProject импортирует код из SharedLib1. Проблема в том, что TestProject использует сценарии реакции 3.3.0, зависящие от babel-jest ^ 24.9.0, в то время как SharedLib1 использует response-scripts-ts ^ 2.16.0, который зависит от babel-jest 22.4.4. При запуске 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)
Я мог бы отключить ошибку, установив SKIP_PREFLIGHT_CHECK=true
в TestProject или вручную обновив сценарии реакции внутри SharedLib1, но я хотел бы знать, есть ли лучший способ справиться с этим.
myMonorepo
-web
-SharedLib1
-package.json
-TestProject
-package.json
-package.json
Package.json из myMonoRepo:
{
"name": "my-mono-repo",
"version": "0.1.0",
"private": true,
"workspaces": [
"web/*"
],
"nohoist": [
"**/babel-jest",
"**/babel-jest/**"
]
}
Package.json из myMonoRepo:
{
"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;
Есть babel-jest 24.9.0 внутри node_modules TestProj и еще один 22.4.4 внутри node_modules myMonoRepo.
babel-jest
в вашей файловой системе в несколькихnode_modules
папках? Вы также можете поделиться выводомyarn why babel-jest
? - person Slbox   schedule 28.01.2021