2016-03-18 49 views
2

içe aktarırken 'Modül bulamıyor' nodejs modüllerinin içe aktarılmasıyla ilgili küçük bir sorun var.TypeScript

:

import * as database from "mysql2"; 

Bana bir hata verdi:

import * as http from "http"; 

Ama 'mysql2' ile aynı şeyi yapmaya çalıştıklarında modülü node.js: http modülü için bu sözdizimi iyi çalışıyor

Cannot find module 'mysql2' 

Ve bu satırı derlemeyi reddedin. Hatta (neden bilmiyorum) böyle sözdizimi çalıştı:

import {database} from 'mysql2'; 

Ama bu gibi yazmak sadece herhangi bir hata olmasa: Ben kurdum tsconfig.json olarak

let database = require('mysql2'); 

:

"module": "commonjs", 
"moduleResolution": "node", 

Ve tabii ben zaten proje klasöründe NPM yoluyla modülleri yükledim:

npm install mysql2 --save 

Sorularım, neden içe aktarma neden çalışmaz ve Visual Studio Kodunda hatam var?

cevap

1

Mysql2 için türküm tanımı eksik olduğundan içe aktarma çalışmıyor. Typings.json (veya tsd.json) 'u göndermediniz, ancak nodejs için tanımlarım ithal ettiniz, ama mysql2 için değil, bu nedenle' import '' sözdizimini kullanarak mysql2 ile import edebilirsiniz. javascript nodejs 'ithal etmek' gerektirir.

+0

Bu her şeyi açıklıyor, teşekkürler! Daha önce 'mysql' ile aynı sorunu yaşadım ancak bunun için DefinetlyTyped'i kurdum ve hata giderdim. Bu yüzden 'mysql' için 'mysql2' için d.ts dosyasını düzenledim (geriye dönük uyumlu API'ye sahip olduğu için) ve şimdi harika çalışıyor! –