Совместно с рабочими пространствами пряжи реагируют компоненты. - PullRequest
0 голосов
/ 05 апреля 2019

Зена - рабочее пространство пряжи

  • компоненты : где находится общий код
  • admin2-client : CRA response-app wantиспользование компонентов

Настройка моно репо:

xena
  |----- node_modules
  |----- package.json
  |----- admin-client2
     |------ node_modules
     |------ src
     |------ packages.json
  |----- components
     |----- nmds-components
        |----- node_modules
        |----- src
        |----- index.js
        |----- packages.json
    |----- constants
        |----- countries.js
        |----- languages.js
        |----- node_modules
        |----- package.json

Совместно используемые компоненты реакции не передаются через babel, поэтому приложение-потребитель выдает ошибку babel.

  23 | 
  24 | 
> 25 |   dismissError = () => this.setState({ isErrorHidden: true });
     |                ^
  26 | 
  27 |   render() {
  28 |     const { error } = this.props;

Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.

Я поместил .babelrc в папку общего компонента (nmds-component).Также "source":true для общего компонента package.json.

root package.json

{
  "name": "xena",
  "version": "0.0.1",
  "description": "NextJS, CRA app monorepo",
  "main": "index.js",
  "repository": "https://github.com/s4kh/xena",
  "author": "skh",
  "license": "MIT",
  "private": true,
  "scripts": {
    "clean": "shx rm -rf **/node_modules",
    "dev-admin2": "yarn workspace admin2-client start"
  },
  "devDependencies": {
    "node-sass-chokidar": "^1.3.3",
    "npm-run-all": "^4.1.3",
    "shx": "^0.3.2"
  },
  "workspaces": [
    "components/*",
    "admin2-client"
  ]
}

admin2-client package.json

{
  "name": "admin2-client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-scripts": "2.1.8",
    "nmds-components": "1.0.0" << THE SHARED COMPONENT
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

Я предполагаю, что react-scripts start не переносит код внутри node_modules, nmds-components существует внутри корня node_modules как символическая ссылка.

...