Установить ограничение производительности процессора с помощью npm запустить сборку create-react-app (Docker)

#node.js #reactjs #linux #typescript #create-react-app

#node.js #reactjs #linux #typescript #create-react-app

Вопрос:

Я столкнулся с проблемой производительности при очистке проекта. Я пытаюсь создать приложение с помощью команды npm run build в моем приложении, созданной с create-react-app --template typescript помощью и моей CPU > = 100% нагрузки.

Я уже пробовал устанавливать параметры для node :

npm run build --node-flags --max-old-space-size = 4096

react-scripts build --max-old-space-size = 4096

Но это никоим образом не повлияло на настройку пределов загрузки процессора (хотя я меняю оперативную память), я просто, вероятно, не нашел node --v8-options параметр или я делаю что-то не так.

Глобальная проблема заключается в том, что при развертывании через Docker все это устанавливается и собирается, почти все ресурсы берутся из контейнера виртуализации.

Мне предложили возможность установить ограничения на сборку (я всего лишь интерфейсный разработчик, я еще не знаю таких подробностей)

На всякий случай, мой package.json :


 {
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@date-io/date-fns": "^1.3.13",
    "@material-ui/core": "^4.11.0",
    "@material-ui/icons": "^4.9.1",
    "@material-ui/lab": "^4.0.0-alpha.56",
    "@material-ui/pickers": "^4.0.0-alpha.12",
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "@types/jest": "^26.0.15",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.53",
    "@types/react-dom": "^16.9.8",
    "@types/react-redux": "^7.1.9",
    "@types/react-router-dom": "^5.1.6",
    "@types/redux": "^3.6.0",
    "axios": "^0.21.0",
    "date-fns": "^2.0.0-beta.5",
    "materialui-daterange-picker": "^1.1.92",
    "node-sass": "^4.14.1",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-redux": "^7.2.2",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.0",
    "redux": "^4.0.5",
    "reselect": "^4.0.0",
    "typescript": "^4.0.3",
    "uuid": "^8.3.1",
    "web-vitals": "^0.2.4"
  },
  "scripts": {
    "start": "env-cmd -f .env react-scripts start",
    "build": "env-cmd -f .env node_modules/react-scripts/bin/react-scripts.js build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@types/uuid": "^8.3.0",
    "env-cmd": "^10.1.0",
    "eslint-plugin-react-hooks": "^4.2.0",
    "redux-devtools": "^3.7.0",
    "redux-devtools-dock-monitor": "^1.2.0",
    "redux-devtools-log-monitor": "^2.1.0"
  }
}



  

ОС Linux Ubuntu 20.04 (Nginx)
Процессор: Intel Core I5 8th
Оперативная память: 8 ГБ DDR3

Docker:

 FROM nginx:1.18.0-alpine
EXPOSE 80
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d

RUN apk add --update nodejs nodejs-npm bash
COPY package.json /app/package.json
COPY package-lock.json /app/package-lock.json
COPY src /app/src
COPY public /app/public
COPY tsconfig.json /app/tsconfig.json
RUN cd app amp;amp; npm ci

ENV server_host=- 
    server_port=-

ENTRYPOINT bash -c 'printf "REACT_APP_BACKEND=http://${server_host}:${server_port}" > /app/.env; 
                    cd app;
                    npm run build;
                    cp -a build/. /usr/share/nginx/html;
                    nginx -g "daemon off;"'
  

Приложение работает нормально. Проблема заключается в нагрузке на процессор. Несколько процессов создаются при загрузке 200%.
Как вы можете это исправить? (даже если сборка приложения занимает больше времени, главное, чтобы оно не потребляло ресурсы процессора более чем на 50%)

Спасибо за любые отзывы и любую помощь