gloria0 2019-06-20
这几天打算给自己写的generator
加上docker
,但是却出现了个奇怪的问题,就是我在本地中webpack
和ndoemon
的热加载是能正常使用的,但是在docker
容器中这两者却不法使用,而且本地代码更新后是正常同步过去的。
在热心网友n͛i͛g͛h͛t͛i͛r͛e͛
(segmentfault提问)的帮助下,终于找到了问题的解决方法。其实在stackoverflow
和github issues
上已经讨论过这个问题并已经有解决方法了,no automatic restart when using boot2docker docker volume,Docker support
webpack解决方法
在webpack.conf.js
中写入
watchOptions: { aggregateTimeout: 300, poll: 1000 }
告诉webpack
采用poll
的方式监听代码,每1000毫秒检测一次代码有没有发生变化
nodemon解决方法
在CLI
启动时候加上参数--legacy-watch
或-L
(简写),即nodemon -L xxx.js
,-L
表示的是采用poll
的方式监听代码变化。
造成这样的原因是本地和container
使用的是两种不同的文件系统,所以当本地代码发生变化后,不会去触发vboxsf
的inotify
,所以使得webpack
和nodemon
的监听失效,而采用poll
轮训的方式就解决的这个问题。