Comments (12)
Hi @anthonyorona ! I have actually not that big of an idea how the typescript watcher works under the hood, but I had the same issue that my changes on the typescript files on a Windows Host didn't trigger any tsc-watch rebuilds inside my docker container based on the node
image (weird thing though, is that it worked for me approximately a year ago, so no Idea what changed in the meantime, be it docker bind mounts, tsc --watch or tsc-watch). Probably similar to you, file changes were correctly mirrored into the docker container, but the typescript watcher just didn't get triggered.
However, even though it is probably a less CPU friendly way, things worked for me as soon as I've explicitly set the watchOptions
' watchFile
& watchDirectory
tsconfig settings to one of the "polling" settings likes fixedpollinginterval
, prioritypollinginterval
etc. (https://www.typescriptlang.org/tsconfig#watch-watchFile). So e.g. following in the tsconfig file worked then:
{
...
"watchOptions": {
"watchFile": "dynamicprioritypolling",
"watchDirectory": "dynamicprioritypolling",
"excludeDirectories": ["**/node_modules", "dist"],
}
}
from tsc-watch.
the problem persists, this issue needs to be reopened, it seems like tsc-watch is not working properly with docker's container anymore
from tsc-watch.
To narrow down the problem, can you just run it with tsc --watch
without any hot reload. does it work?
from tsc-watch.
@anthonyorona Can you confirm @oelerpearler's solution?
from tsc-watch.
Bump before closing
from tsc-watch.
@YouneLL @anthonyorona Can any of you provide an example of the failure?
from tsc-watch.
There is no failure, tsc-watch simply doesn't restart after files have changed.
from tsc-watch.
Can someone please provide an example?
from tsc-watch.
This is my workaround:
tsconfig.json
{
// ...
"watchOptions": {
"excludeDirectories": ["**/node_modules", "dist"]
},
}
Dockerfile
# ...
CMD npm run dev -- --watchFile dynamicPriorityPolling --watchDirectory dynamicPriorityPolling
I wasn't able to use Dockers exec form, it somehow messes up arguments
from tsc-watch.
@gilamran
I'd say that this may be reproduced for any project using tsc-watch on Docker.
Maybe synced changes don't trigger native file events within container that typescript relies on by default.
This may be also Windows host - only issue as I'm on Windows 10
Related issue: microsoft/TypeScript#54144
from tsc-watch.
yea, ok so the reason is probably what @piotr-cz mentioned: microsoft/TypeScript#54144
tsc-watch
is relaying on tsc
to do the actual watch. If it's not working for typescript it work for tsc-watch
from tsc-watch.
Related Issues (20)
- Improve tsc watch/client signal + stderr support HOT 19
- Be able to tweak `node` memory HOT 2
- Support Β for `--listEmittedFiles` + new message `file_emitted` HOT 3
- `--onSuccess exit` causing a crash HOT 2
- black on black text HOT 6
- Please tag published versions HOT 2
- index.js contains DOS line endings since version 5.0.1 HOT 2
- Support for TypeScript Project References / --build mode HOT 6
- Please add a --no-watch option HOT 7
- Document how to use --incremental? HOT 4
- Wrong export of TscWatchClient in version 6.0.0 HOT 8
- How to make tsc-watch exit if COMMAND exits unexpectedly HOT 1
- On windows compiler path issue. HOT 6
- How to pass the node environment? HOT 2
- tsc-watch re-compiling even when no file was modified HOT 4
- Best tool for the job HOT 5
- "TypeError: es.split is not a function" Error when change a file and compile HOT 2
- Add `--onEachCompilationStarted` option HOT 1
- Add some options HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tsc-watch.