如何使用'request'npm模块进行ES6导入

时间:2017-12-17 01:51:48

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

在ES6中 - 如果有一些TypeScript代码(我正在使用的项目在浏览器和Node服务器上运行,我想对浏览器包进行树形扫描),我正试图消除{{{ 1}}并且仅使用require。但是当我这样做的时候......

import

然后调用import * as request from 'request';,我在Node中遇到运行时错误(使用babel生成代码ES5,因此Node兼容):

request()

另一方面,如果我这样做:

TypeError: request is not a function

然后TypeScript编译器抱怨

import request from 'request';

如果我手动将已编译的JS代码更改为使用error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.,它实际上工作正常......如何强制TS编译器接受此代码并将其传递出来?

2 个答案:

答案 0 :(得分:2)

您可以尝试将allowSyntheticDefaultImportstrue添加到您的

tsconfig.json

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

答案 1 :(得分:0)

基本上,您需要在tsconfig.json的第46行中删除注释,因为默认的ts配置文件具有此选项,但默认情况下已注释了