繁体   English   中英

找不到命令:react-scripts(PS:yarn2(berry)工作区)

[英]command not found: react-scripts (PS: yarn2(berry) workspaces)

在具有两个工作区commonapp的 yarn2 驱动的 monorepo 上工作。 我在 root 的 package.json 中将typescriptreact-scripts声明为 devDependencies; 并在应用程序的 package.json 中将typescriptreact-scripts声明为 peerDependencies。

但是,运行yarn start会出现错误

command not found: react-scripts

知道该怎么做吗?

边注

react-scripts 对我在根工作区的依赖部分提供的react有 peerDependencies。

为 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

{
  "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"
    ]
  }
}

不确定这是否是黑客攻击,但使用https://yarnpkg.com/getting-started/qa#how-to-share-scripts-between-workspaces解决了这个问题

将此添加到根的 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"
  }

在应用程序的 package.json 中更新了这个

 "scripts": {
    "start": "yarn g:start",
    "build": "yarn g:build",
    "test": "yarn g:test",
    "eject": "yarn g:eject"
  }

PS:不确定为什么react-scripts在应用程序工作区中不可用,即使它被指定为peerDependency :/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM