Ошибка типа: путь должен быть строкой. DOCKER РЕАКЦИЯ - PullRequest
1 голос
/ 20 марта 2020

Я могу запустить свое приложение реакции локально (либо на windows и linux), набрав в консоли

npm run

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

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:28:11)
    at Object.join (path.js:1236:7)
    at noopServiceWorkerMiddleware (/app/node_modules/react-dev-utils/noopServiceWorkerMiddleware.js:14:26)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/app/node_modules/express/lib/router/index.js:317:13)
    at /app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
    at next (/app/node_modules/express/lib/router/index.js:275:10)
    at launchEditorMiddleware (/app/node_modules/react-dev-utils/errorOverlayMiddleware.js:20:7)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/app/node_modules/express/lib/router/index.js:317:13)
    at /app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
    at next (/app/node_modules/express/lib/router/index.js:275:10)
    at handleWebpackInternalMiddleware (/app/node_modules/react-dev-utils/evalSourceMapMiddleware.js:42:7)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)

мой docker файл:

# base image
FROM node:12.2.0-alpine

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /app/package.json

RUN npm uninstall -g jest
RUN npm install -g jest
RUN npm cache clean --force
RUN npm install

RUN npm install --silent
RUN npm install react-scripts@3.4.0 -g --silent

# start app
CMD ["npm", "start"]

и мой пакет . json file

{
  "name": "randevou-react",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.4.0",
    "@testing-library/user-event": "^7.2.1",
    "@types/react-router": "^5.1.4",
    "react": "^16.12.0",
    "react-datepicker": "^2.12.1",
    "react-dom": "^16.12.0",
    "react-router-dom": "^5.1.2",
    "react-scripts": "^3.4.0",
    "typescript": "^3.7.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

я запускаю контейнер, набрав

docker run -d -v /app -v /app/node_modules -p 3001:3000 --rm randevoureact

в контейнере, у меня версия узла 8.10.0, а у меня npm версия 5.6.0 i ' я совершенно новичок ie в докерах и внешних проблемах

я не знаю, является ли это важным, но я использую реагирующий маршрутизатор в моем приложении реакции, может кто-нибудь мне помочь: (?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...