[英]command not found: react-scripts (PS: yarn2(berry) workspaces)
Working on a yarn2 powered monorepo with two workspaces common
and app
.在具有两个工作区common
和app
的 yarn2 驱动的 monorepo 上工作。 I've declared typescript
and react-scripts
as devDependencies in root's package.json ;我在 root 的 package.json 中将typescript
和react-scripts
声明为 devDependencies; and declared typescript
and react-scripts
as peerDependencies in app's package.json.并在应用程序的 package.json 中将typescript
和react-scripts
声明为 peerDependencies。
However, running yarn start
gives the error但是,运行yarn start
会出现错误
command not found: react-scripts
Any idea how to go about this?知道该怎么做吗?
react-scripts has peerDependencies on react
which I've provided in root workspace's dependency section. react-scripts 对我在根工作区的依赖部分提供的react
有 peerDependencies。
attaching package.json for root:为 root 附加 package.json:
{
"name": "monorepo",
"packageManager": "yarn@3.2.1",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/node": "^16.11.43",
"@types/react": "^18.0.15",
"@types/react-dom": "^18.0.6",
"fictoan-react": "^0.41.22",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"styled-components": "^5.3.5",
"web-vitals": "^2.1.4"
},
"devDependencies": {
"react-scripts": "5.0.1",
"typescript": "^4.7.4"
},
"workspaces": [
"common",
"app"
]
}
package.json for app应用程序的 package.json
{
"name": "app",
"version": "0.1.0",
"private": true,
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"dependencies": {
"common": "workspace:*"
},
"peerDependencies": {
"@testing-library/jest-dom": "*",
"@testing-library/react": "*",
"@testing-library/user-event": "*",
"@types/jest": "*",
"@types/node": "*",
"@types/react": "*",
"@types/react-dom": "*",
"fictoan-react": "*",
"react": "*",
"react-dom": "*",
"react-scripts": "*",
"styled-components": "*",
"web-vitals": "*"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
Not sure if this is a hack, but solved this using https://yarnpkg.com/getting-started/qa#how-to-share-scripts-between-workspaces不确定这是否是黑客攻击,但使用https://yarnpkg.com/getting-started/qa#how-to-share-scripts-between-workspaces解决了这个问题
added this to root's package.json将此添加到根的 package.json
"scripts": {
"g:start": "cd $INIT_CWD && react-scripts start",
"g:build": "cd $INIT_CWD && react-scripts build",
"g:test": "cd $INIT_CWD && react-scripts test",
"g:eject": "cd $INIT_CWD && react-scripts eject"
}
updated this in app's package.json在应用程序的 package.json 中更新了这个
"scripts": {
"start": "yarn g:start",
"build": "yarn g:build",
"test": "yarn g:test",
"eject": "yarn g:eject"
}
PS:not really sure why react-scripts
isn't available in app workspace even though its specified as a peerDependency
:/ PS:不确定为什么react-scripts
在应用程序工作区中不可用,即使它被指定为peerDependency
:/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.