Зена - рабочее пространство пряжи
- компоненты : где находится общий код
- 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
как символическая ссылка.