首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在TypeScript中使用npm模块--甚至连最简单的示例都无法工作

在TypeScript中使用npm模块--甚至连最简单的示例都无法工作
EN

Stack Overflow用户
提问于 2015-09-18 22:08:37
回答 1查看 933关注 0票数 0

我想在打字程序中使用npm模块。幸运的是,我遇到了,它看起来非常容易,而且看起来确实很有效。我想我会尝试增加另一个包,只是为了掌握它的诀窍。所以我做了叉子一个相对简单的提交

以下是我在承诺中所做的一切:

  1. pubsub-js添加到package.json中的依赖项中,因此它将安装在npm install上。
  2. 设置tsd,使用它安装pubsub-js的TypeScript定义,并将其设置为在npm install上自动运行。
  3. 修改后的index.ts包括已安装的定义: /// 并导入已安装的软件包: 导入PubSub =require(‘pubsub’);

不幸的是,这不起作用。我知道这个错误:

代码语言:javascript
运行
复制
$ npm install
$ npm test
> demo-typescript-node-minimal@0.0.1 test /home/dumbmatter/projects/mini/demo-typescript-node-minimal
> tsc index.ts --module commonjs && node ./index

index.ts(10,25): error TS2307: Cannot find module 'pubsub-js'.
npm ERR! Test failed.  See above for more details.

(如果您自己也想这样做,请运行克隆我的回购,运行npm install,然后运行npm test。)

我想重申的是,原始版本(没有我的提交,直接从原始回购)实际上是起作用的:

代码语言:javascript
运行
复制
$ git checkout d002c0dffc9d9f65aca465b0fc6a279bcd23202d
$ npm test

> demo-typescript-node-minimal@0.0.1 test /home/dumbmatter/projects/mini/demo-typescript-node-minimal
> tsc index.ts --module commonjs; node ./index

[ 'abc', index: 0, input: 'abcdefgh' ]
Hello Dave

那是怎么回事?为什么我的尝试如此惨败?

我也希望您对在TypeScript中使用npm包的智慧有任何建议。这仅仅是为了便于实际使用而出错吗?如果是这样的话,你会发现你想在你使用的TypeScript程序中找到一些通用的公共库.你怎么做?自己写?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-18 22:12:53

问题是pubsub.d.ts不包含CommonJS模块"pubsub-js"的定义(而是只定义全局对象PubSubJS)。

最好的解决方法是编辑该文件;在底部添加:

代码语言:javascript
运行
复制
declare module "pubsub-js" {
  export = PubSub;
}

大多数.d.ts文件已经包含了这样一个定义,当一个CommonJS或CommonJS模块可用于给定的包时。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32661756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档