如何将 ES6 导入与“请求”npm 模块一起使用
Posted
技术标签:
【中文标题】如何将 ES6 导入与“请求”npm 模块一起使用【英文标题】:How to use ES6 import with 'request' npm module 【发布时间】:2018-05-30 19:11:21 【问题描述】:在 ES6-ifying 一些 TypeScript 代码(我正在工作的项目在浏览器和节点服务器中运行,我想对浏览器包进行树摇动),我试图消除对 @987654322 的使用@ 并且只使用import
。但是当我这样做时......
import * as request from 'request';
随后调用 request()
,我在 Node 中遇到运行时错误(在使用 babel 使代码 ES5 与 Node 兼容之后):
TypeError: request is not a function
另一方面,如果我这样做:
import request from 'request';
然后 TypeScript 编译器会报错
error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.
如果我手动将编译后的 JS 代码更改为使用import request from 'request';
,它实际上可以正常工作...如何强制 TS 编译器接受此代码并直接通过?
【问题讨论】:
***.com/questions/35706164 【参考方案1】:基本上你需要在第 46 行删除 tsconfig.json
中的注释,因为默认的 ts 配置文件有这个选项,但默认情况下它是注释的
【讨论】:
【参考方案2】:您可以尝试将allowSyntheticDefaultImports
:true
添加到您的
tsconfig.json
在 Typescript 中似乎仍然是一个未解决的问题。
【讨论】:
以上是关于如何将 ES6 导入与“请求”npm 模块一起使用的主要内容,如果未能解决你的问题,请参考以下文章