#reactjs #npm
#reactjs #npm
Вопрос:
Когда я запускаю docker-compose up в своем проекте, серверная часть работает нормально, но интерфейс выходит из строя и продолжает перезапускаться. В нем указано «ОШИБКА npm! отсутствует сценарий: dev» как ошибка. Теперь я использую react, и dev не является одним из сценариев по умолчанию при создании приложения, поэтому я не уверен, как его написать. Это мой файл package.json.
{
"name": "frontend",
"version": "0.3.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.9",
"@testing-library/react": "^11.2.3",
"@testing-library/user-event": "^12.6.0",
"bootstrap": "^4.5.3",
"react": "^17.0.1",
"react-bootstrap": "^1.4.3",
"react-dom": "^17.0.1",
"react-scripts": "4.0.1",
"web-vitals": "^0.2.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --passWithNoTests",
"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"
]
}
}
Я решил, что напишу его так же, как и все остальные, поэтому я написал «dev»: «react-scripts dev», но это не сработало.
docker-compose.yml файл ниже
version: '2.4'
services:
frontend:
build:
context: ./frontend
ports:
- "8050:8000"
volumes:
- .:/frontend
environment:
CI: 'true'
restart: always
backend:
build:
context: ./backend
ports:
- "4050:5000"
volumes:
- ./backend:/opt/app
restart: always
интерфейс Dockerfile
FROM node:latest
COPY . /opt/app
WORKDIR /opt/app
CMD ["npm", "run", "start"]
Комментарии:
1. Можете ли вы добавить свой docker-compose.yml и любой Dockerfile, который вы использовали для своего react.js приложение? Я подозреваю, что изменение в Dockerfile — самый простой способ достичь того, что вы ищете….
2.
react-scripts start
запускает сервер разработки."dev": "react-scripts start"
3. Добавлены файлы @JayAchar
4. Должен ли это заменить сценарий «start» или просто добавить его в конец? @cbr
5. @Jaakko Файл dockerfile вашего интерфейса выглядит нормально, и он использует
start
скрипт. Раньше у васCMD ["npm", "run", "dev"]
там было? Если это так, сделайтеdocker-compose build frontend
, чтобы перестроить изображение иdocker-compose up -d
снова. Если он все еще жалуется на отсутствиеdev
, вы уверены, что ошибка исходит из контейнера внешнего интерфейса, а не из внутреннего контейнера?