我有一个包含TypeScript的通用npm模块,这是一个提供一些类和功能的节点模块。该模块通过 browserify
+ tsify
打包,还导出声明文件并使用 gulp 构建。
我有另一个使用 TypeScript 的 npm 模块,它通过 file:../modulename
在本地导入此模块并尝试使用第一个模块的功能。第二个模块也通过 browserify
+ tsify
打包,并使用 gulp
构建。第二个模块的编译通过 npx tsc
工作,但如果我执行带有错误消息的 gulp 构建文件,则会失败
Error: Cannot find module './AbstractClass' from 'folderInOtherModuleContainingTheJSFiles'
有趣的是,它有时会在此类中失败,有时在另一个类中失败,因此似乎还有某种并发处理。
我从项目中提取了失败的代码,并在此处创建了一个具有此行为的最小示例。
npm version: 5.6.0
node version: v9.5.0
对于任何可能来到这篇文章并面临相同错误的人。
我也在 tsify 上打开了一个问题,认为它与插件有关,因为npx tsc
有效。
幸运的是,问题已经解决,尽管有解决方法。似乎存在名称冲突,导致browserify
认为生成的捆绑包中的require
调用(变量(需要解析,但无法解析。解决方法是丑化生成的捆绑包,以免发生冲突。更多详情见上述链接问题。