包裹名称中的连字符引起的打字错误错误



我已经构建了一个我想起作用的javascript/typeScript库:

  • 从JavaScript和Typescript调用时,全局变量
  • 从JavaScript和Typescript调用时通过Requirej访问
  • 具有完整的单元测试覆盖范围

这是一个使用WebPack打包的UMD,并在此处部署为NPM软件包(https://www.npmjs.com/~typed-cartract)。如果您想要我正在研究的分支的整个来源,则可以在此处找到https://github.com/randarp/typed-contract/tree/tree/feature/issue_5.1。

我的问题是,我无法在所有情况下都能使用它,而我的感觉是包装名称中的连字符(即打字合同)是罪魁祸首。一些例子:

  • 在Typescript中
    • 如果我从"键入合同"中使用导入{Contract} ,则我的单位测试失败了,但是WebStorm Transpiler说这是正确的。
    • 如果我从" TypedContract"中使用导入{Contract} ,则我的单位测试通过了,但是转板器表示错误:(4,26)TS2306:file'C:/projects/projects/typedontract/code/typedContract.d.ts'不是模块。
  • 我有一个外部nodejs应用程序来对其进行测试。在这种情况下:
    • 如果我从'typed-contract''使用 import {Contract} 它可以按预期工作
    • 如果我使用 import {Contract}从'TypedContract'中使用,则不会加载应用程序,因为它找不到NODE_MODULES下的NPM软件包。

我开始认为我需要贬低此软件包并在没有连字符的情况下启动新软件包,除非有人可以给您可能发生的事情一些线索,因为我的"按置换编程"不起作用。

好吧,经过几次失败的尝试,我创建了一个新软件包,并弃用了旧软件包。现在可以在以下位置找到:

https://www.npmjs.com/package/typedcartract。

我在与连字符的所有情况下都无法使它起作用,所以这似乎是最好的长期解决方案。

我开始认为我需要贬低这个软件包,并在没有连字符的情况下启动新软件包

  • 我应该与-一起工作。
  • 不要过多信任WebStorm。TSC应该是您的单一真实来源。

然后我的单位测试失败

也许您的单位测试是错误的。

最新更新