2017-12-17 7 views
1

In ES6-wenn ich etwas TypeScript-Code schreibe (das Projekt läuft sowohl im Browser als auch auf einem Node-Server, möchte ich das Browser-Bundle schütteln) Ich versuche, die Verwendung von require zu eliminieren und verwende nur import. Aber wenn ich dies tun ...Wie man den ES6-Import mit 'request' npm-Modul verwendet

import * as request from 'request';

und anschließend request() nennen, ich Laufzeitfehler in Knoten erhalten (nach babel mit dem Code ES5 zu machen, und damit Knoten kompatibel):

TypeError: request is not a function

Auf der anderen Seite, wenn ich dies tun:

import request from 'request';

dann das Typoskript Compiler beschwert mit

error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.

Wenn ich manuell die kompilierte JS-Code ändern import request from 'request'; zu verwenden, es tatsächlich funktioniert gut ... wie kann ich den TS-Compiler zwingen diesen Code zu übernehmen und es nur passieren durch?

+0

https://stackoverflow.com/questions/35706164 –

Antwort

2

Können Sie versuchen allowSyntheticDefaultImports hinzufügen: true zu Ihrem

tsconfig.json 

scheint immer noch eine offene Frage in Maschinenschrift.

+0

Danke, das hat funktioniert! –

Verwandte Themen