在 ES6 化一些 TypeScript 代码中(我正在工作的项目在浏览器和 Node 服务器上运行,我想对浏览器包进行 tree-shaking),我试图消除 require
和只使用 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 编译器接受此代码并通过它?
最佳答案
您可以尝试添加 allowSyntheticDefaultImports
: true
到您的
tsconfig.json
在 Typescript 中似乎仍然是一个悬而未决的问题。
关于node.js - 如何使用带有 'request' npm 模块的 ES6 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851583/