Ich benutze Docker für Mac Version 1.12.0-RC2 für ein reaktives Projekt. Mein Workflow ist dies:Chokidar nimmt keine Dateiänderungen im Docker Container auf
src/
Ordner auf OS X auf den Behälter montiert ist- Wenn ein Entwickler eine Datei in
src/
modifiziert sie zu ES5 und platziert inpublic/
umgewandelt wird (das funktioniert). - Wenn eine Datei in
public/
geändert wird, löst ein anderer Beobachter Hot-Neuladen aus (funktioniert auf meinem localhost, aber nicht im Container).
Hier ist mein Schritt Beobachter Code aus Schritt 3:
// root = "/src"
const watcher = chokidar.watch(root, {
usePolling: true,
awaitWriteFinish: {
pollInterval: 100,
stabilityThreshold: 250
},
ignored: /\.(git|gz|map)|node_modules|jspm_packages|src/,
ignoreInitial: true,
persistent: true
})
.on("change", function fileWatcher(filename) {
const modulePath = filename.replace(`${root}/`, "");
wss.clients.forEach(function sendFileChange(client) {
send("filechange", modulePath, client);
});
if (cache[filename]) {
wss.clients.forEach(function sendCacheFlush(client) {
send("cacheflush", filename, client);
});
delete cache[filename];
}
});
Und meine Docker-compose.yml Datei:
version: '2'
services:
wildcat:
build:
context: .
args:
JSPM_GITHUB_AUTH_TOKEN:
image: "nfl/react-wildcat-example:latest"
environment:
NODE_ENV: development
PORT: 3000
STATIC_PORT: 4000
COVERAGE:
LOG_LEVEL:
NODE_TLS_REJECT_UNAUTHORIZED: 0
CHOKIDAR_USEPOLLING: 'true'
volumes:
- ./src:/src/src
- ./api:/src/api
ports:
- "3000:3000"
- "4000:4000"
ulimits:
nproc: 65535
entrypoint: "npm run"
command: "dev"