reactjs - TypeError:路径必须是字符串。码头工人反应
问题描述
我可以通过输入控制台在本地(在 Windows 和 linux 上)运行我的 react 应用程序
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)
我的码头文件:
# 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"]
和我的 package.json 文件
{
"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 我完全是码头工人和前端问题的新手
我不知道它是否重要,但我在我的反应应用程序中使用 react-router 有人可以帮助我:(?
解决方案
推荐阅读
- vector - 将 pyspark 数据框中的两列相乘。其中一个包含一个向量,其中一个包含一个常数
- python - 如何使用 Python/Pandas 从日期字段按月分组
- c# - 在 VB.Net 中动态添加多个基于 XAML 的 WPF 控件到 Canvas
- python - sqlite3.OperationalError:靠近“=”:Python的语法错误
- c++ - Issues with beginner openGL project rendering triangles
- c - Swift:访问作为对象的 C 结构成员
- python - 如何腌制 Python 类方法?
- javascript - 单击按钮后填写文本字段
- python - rstrip() 不会删除我告诉它的内容
- string - 如何计算字符串中特定元音的数量