【问题标题】:How to use ES6 import with 'request' npm module如何将 ES6 导入与“请求”npm 模块一起使用
【发布时间】: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 编译器接受此代码并直接通过?

【问题讨论】:

标签: node.js typescript es6-modules npm-request


【解决方案1】:

基本上你需要在第 46 行删除 tsconfig.json 中的注释,因为默认的 ts 配置文件有这个选项,但默认情况下它是注释的

【讨论】:

    【解决方案2】:

    您可以尝试将allowSyntheticDefaultImports:true 添加到您的

    tsconfig.json
    

    在 Typescript 中似乎仍然是一个未解决的问题。

    【讨论】:

      猜你喜欢
      • 2020-02-12
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多