2016-03-04 4 views
6

die folgende Verzeichnisstruktur Gegeben:Warum kann TypeScript keine Module finden, die in 'node_modules' installiert sind?

{project}/ 
    |-- node_modules/ 
    | |-- lodash 
    |-- src/ 
    | |-- index.ts 
    |-- lib/ (output) 
    | |-- index.js 
    | |-- index.d.ts 
    |-- package.json 
    |-- tsconfig.json 

Während die Funktionen korrekt ausgegeben gebaut; der tsc Befehl beschwert sich, dass es nicht das lodash Modul lösen kann, wenn ich eine der folgenden Aktionen verwenden:

import _ from "lodash"; 
import _ = require("lodash"); 
import * as _ from "lodash"; 

Inside my ‚tsconfig.json‘ Datei ich folgende Dinge enthalten sind:

... 

"target": "es6", 
"sourceMap": true, 
"module": "commonjs", 
"moduleResolution": "node", 

... 

Aber trotz es findet immer noch keines der Module, die mit npm installiert werden.

Fehle ich etwas, das benötigt wird, damit TypeScript diese Module findet?

Ich stelle fest, dass TypeScript ohne eine TypeScript-Definitionsdatei keine zusätzlichen Typprüfungen bereitstellen kann. aber sicherlich sollten diese standardmäßig auf die any Art richtig?

+1

Stellen Sie sicher, haben Sie Typoskript oder höher. Hier ist eine [gute Diskussion] (https://medium.com/@mweststrate/how-to-create-strongly-typed-npm-modules-1e1bda23a7f4#.ci86154ph) von, wie es vor 1.6 und wie es "arbeitete" arbeitet nach. –

Antwort

5

Da lodash keine Definitionsdatei im Ordner node_modules/lodash hat, funktioniert das nicht. Sie werden herunterladen müssen, um es Typisierungen oder verwenden Sie eine Umgebungs Erklärung anstelle einer Einfuhr mit:

declare var _: any; 

Für node.js Sie verwenden haben würde: 1,6

var _ = require('lodash'); 
Verwandte Themen