tsify icon indicating copy to clipboard operation
tsify copied to clipboard

Compile errors when using from Docker.

Open richardspence opened this issue 7 years ago • 1 comments

When building browserify from docker, tsify will complain about "cannot find module abc". I noticed casing anomalies during output, and after some investigation/debugging determined it's related to normalizing filenames in host.js that is somehow not working as expected when executing from a docker environment.

repro: (on mac, simplified steps)

  1. create a new project

  2. Add a repro.d.ts file that imports a module a. npm i -S @types/events' b. in repro.d.ts file i. add imports {EventEmitter} from 'events'` ii. Export something bundle with browserify, and tsify plugin, default options (I used the CLI) expected: output. actual: output.

  3. In a docker image, do the same process. Mount local file system into docker

expected: output. Actual: TS Errors complaining about 'cannot find module'

Workaround: set "forceConsistentCasingInFileNames": true, in tsconfig. This is read by Host.js to normalize filenames which is related to this bug.

richardspence avatar Dec 04 '18 22:12 richardspence

The plugin attempts to detect whether or not the host OS has a case-sensitive file system. See https://github.com/TypeStrong/tsify/blob/master/lib/Host.js#L17-L24

If for some reason, this is not working within Docker, I think you will have to stick with the work around, as I don't have time to look into this, ATM.

Also, if it works fine without that dependency, I'd suggest that there is something amiss within that specific dependency (or its types) that can be addressed upstream.

cartant avatar Dec 04 '18 22:12 cartant