gpt4 book ai didi

javascript - 由于包名称中的连字符而导致令人困惑的 TypeScript 错误?

转载 作者:行者123 更新时间:2023-11-28 04:54:06 25 4
gpt4 key购买 nike

我已经构建了一个我想要使用的 JavaScript/TypeScript 库:

  • 从 JavaScript 和 TypeScript 调用时的全局变量
  • 从 JavaScript 和 TypeScript 调用时通过 RequireJS 访问
  • 具有完整的单元测试覆盖

这是使用 Webpack 打包的 UMD,并在此处部署为 NPM 包 ( https://www.npmjs.com/~typed-contract )。如果你想要我正在开发的分支的完整源代码,你可以在这里找到它 https://github.com/randarp/typed-contract/tree/feature/Issue_5.1 .

我的问题是我无法让它在所有场景下工作,我的感觉是包名称中的连字符(即类型合约)是罪魁祸首。一些例子:

  • 在 TypeScript 中,\Code\TypedContract.Specs\Contract.TypeScript.requireJS.spec.ts
    • 如果我使用 import {contract } from "typed-contract",那么我的单元测试会失败,但 WebStorm 转译器表示它是正确的。
    • 如果我使用 import {contract } from "typedcontract",那么我的单元测试会通过,但编译器会显示 Error:(4, 26) TS2306:File 'C:/Projects/TypedContract/Code/typedcontract.d.ts' 不是一个模块。
  • 我有一个外部 NodeJS 应用程序来测试它。在这种情况下:
    • 如果我使用import {contract} from 'typed-contract',它会按预期工作
    • 如果我使用 import {contract} from 'typedcontract',它不会加载应用程序,因为它无法在 node_modules 下找到 NPM 包。

我开始认为我需要弃用这个包并开始一个不带连字符的新包,除非有人可以提供一些关于可能发生的情况的线索,因为我的“排列编程”不起作用。

最佳答案

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

https://www.npmjs.com/package/typedcontract .

我只是无法让它在所有带有连字符的情况下工作,所以这似乎是最好的长期解决方案。

关于javascript - 由于包名称中的连字符而导致令人困惑的 TypeScript 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42685501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com