node.js - Hvordan bruke ES6 import med 'request' npm-modulen
Når jeg gjør om noe TypeScript-kode til ES6 (prosjektet jeg jobber med kjører både i nettleseren og på en Node-server, jeg vil gjerne tree-shake nettleser-bundle), prøver jeg å eliminere bruk av require og bare bruke import. Men når jeg gjør dette...
import * as request from 'request';og deretter kalle request(), får jeg kjøretidsfeil i Node (etter å ha brukt babel for å gjøre koden ES5, og dermed kompatibel med Node):
TypeError: request is not a functionPå den annen side, hvis jeg gjør dette:
import request from 'request';da klager TypeScript-kompilatoren med
error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.Hvis jeg manuelt endrer den kompilerte JS-koden til å bruke import request from 'request';, fungerer det faktisk fint... hvordan kan jeg tvinge TS-kompilatoren til å godta denne koden og bare la den passere?
Svar #1
Kan du prøve å legge til allowSyntheticDefaultImports: true til din
tsconfig.json
ser ut til å fortsatt være et åpent problem i Typescript.
Svar #2
I hovedsak må du fjerne kommentaren i tsconfig.json på linje 46, fordi standard ts-konfigurasjonsfil har dette alternativet, men det er kommentert som standard
