我有一个包含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
答案 0 :(得分:0)
对于任何可能来到这篇文章并面临同样错误的人。
我在tsify上打开了一个issue,认为它与插件有关,因为npx tsc
有效。
幸运的是,这个问题已得到解决,但有一个解决方法。似乎存在名称冲突,导致browserify
认为生成的包中的require
调用(变量)需要解析,但不能。解决方法是对生成的包进行uglification,以便不会发生冲突。上述链接问题的更多细节。