Ale*_*ex 3 windows docker reactjs create-react-app hot-reload
我们将使用dockersetup开发一个react pwa,并在部署到master分支期间将应用发布到gitlab页面上。
我在Windows设备上工作,无法在开发人员模式下获得热重载的功能。每当我进行一些更改时,代码都不会重新编译。我必须docker-compose up --build每次都进行每次更改。
有什么可能的方法使windows/docker/create-react-app设置上的热重加载工作?
在package.json之后:
{
"name": "Appname",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-scripts": "2.1.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"buildandserver": "react-scripts build && serve -s 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"
]
}
Run Code Online (Sandbox Code Playgroud)
现在,用于开发人员设置的Dockerfile:
FROM node:9.6.1
# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install react-scripts@1.1.1 -g
# start app
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
至少在docker-compose进行dev-setup:
version: '3.5'
services:
App-Name:
container_name: App-Name
build:
context: .
dockerfile: devsetup/Dockerfile
volumes:
- './:/usr/src/app'
- '/usr/src/app/node_modules'
ports:
- '3000:3000'
environment:
- NODE_ENV=development
Run Code Online (Sandbox Code Playgroud)
我在设备上为Windows运行docker。希望有人能帮助我...谢谢!
问题主要是由您在Windows上引起的。
为什么?
因为Windows上的Docker不能很好地与卷配合使用。更准确地说-它不会将体积变化通知容器。它确实公开了容器中的最新文件,但是容器内的Linux“不知道”文件已更改这一事实,这是触发Webpack重新编译所必需的。
解决方案很少:
我发现3个工作要比2个好一些,但是两者都会牺牲一些性能。
希望对您有所帮助。如果您有任何疑问,请发表评论,我会尝试进行编辑以更好地解释。
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |