不能使用browserify从其他本地typescript模块使用typescript类

时间:2018-03-13 21:16:22

标签: javascript typescript npm browserify tsify

我有一个包含TypeScript的通用npm模块,它是一个提供某些类和功能的节点模块。该模块通过browserify + tsify打包,并导出声明文件并使用gulp构建。

我有另一个使用TypeScript的npm模块,它通过file:../modulename在本地导入该模块,并尝试使用第一个模块的功能。第二个模块也通过browserify + tsify打包,并使用gulp构建。第二个模块的编译通过npx tsc工作,但如果我执行带有错误消息的gulp构建文件,则会失败

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

有趣的是,它有时会因为这个类而失败,所以似乎还有某种并发处理。

我从项目中提取了失败的代码,并使用此行为here创建了一个最小的示例。

npm version: 5.6.0 node version: v9.5.0

1 个答案:

答案 0 :(得分:0)

对于任何可能来到这篇文章并面临同样错误的人。

我在tsify上打开了一个issue,认为它与插件有关,因为npx tsc有效。

幸运的是,这个问题已得到解决,但有一个解决方法。似乎存在名称冲突,导致browserify认为生成的包中的require调用(变量)需要解析,但不能。解决方法是对生成的包进行uglification,以便不会发生冲突。上述链接问题的更多细节。