Cannot use typescript class from other local typescript module using browserify

169 Views Asked by At

I have a common npm module containing TypeScript which is an node module providing some classes and functionality. This module is packaged via browserify + tsify and also exports the declaration files and built with gulp.

I have another npm module using TypeScript which imports this module locally via file:../modulename and tries to use functionality from the first module. The second module is also packaged via browserify + tsify and built with gulp. The compilation of the second module works via npx tsc, but fails if I execute the gulp build file with the error message

Error: Cannot find module './AbstractClass' from 'folderInOtherModuleContainingTheJSFiles'

Interestingly it sometimes fails with this Class sometimes with another, so it seems there is also some kind of concurrent processing.

I extracted the failing code from my project and created a minimal example with this behavior here.

npm version: 5.6.0 node version: v9.5.0

1

There are 1 best solutions below

0
Sheldan On

For anybody who might come to this post and face the same error.

I opened an issue at tsify too, thinking it has something to do with the plugin, because npx tsc worked.

Luckily the issue has been resolved, although with a workaround. There seems to be a name collision which causes browserify to think that a require call, which is a variable, in the resulting bundle needs to be resolved, but can't. The workaround is uglifying the resulting bundle, so that the conflict does not happen. More details in the above linked issue.