2015-10-09 11 views
8

mit ES6 mit Traceur und SystemJS diese Form für den Import ist richtig:beste Lösung Nicht-Typoskript npm Module

import _ from 'lodash'; 

für Typoskript ist es nicht genug - ich bekomme Fehler error TS2307: Cannot find module 'lodash' Also, ich ‚lodash.d installieren. ts':

/// <reference path="lodash/lodash.d.ts" /> 
import _ from 'lodash'; 

Nun erhalte ich: Module '"lodash"' has no default export. von Typoskript Compiler

Also, ich versuche, 'Knoten-Stil':

/// <reference path="lodash/lodash.d.ts" /> 
let _ = require('lodash'); 

ich: Uncaught (in promise) Error: require is not a function in Browser

Endlich:

import _ = require('lodash'); 

und es funktioniert, aber es ist 'alte Form' nicht richtig ES6.

Gibt es einen einzigen, richtigen Weg, ES Typ-Typ-Import für Nicht-Typoskript-Module zu verwenden?

(Typoskript 1.6.2)

+0

Ich habe das Angular2-Tag hinzugefügt, da dieser Ansatz Angular2 auch gemeinsam ist – danday74

Antwort

7

Versuchen import * as _ from 'lodash';

+2

Ich habe versucht: "importieren * als _ von './../node_modules/lodash/dist/lodash';" und "importieren * als _ aus 'lodash';" und immer noch Fehler erhalten, dass das Modul nicht gefunden werden kann. – brando

+0

@brando hast du das gelöst? Ich habe das gleiche Problem. – jwaern

+0

@jwaern leider habe ich das nicht gelöst. Das Problem ist, dass, obwohl Sie lodash in Module zerlegen können, es keine Typoskript-Definitionsdatei für jedes Modul gibt, so dass Sie es nicht von Ihrer Import-Anweisung aus referenzieren können. Hoffentlich wird Lodash die Definitionen bald aktualisieren – brando

1

wenn Sie lodash als node_module importieren, müssen Sie es als declare var tun _: jeder;

Wenn Sie * als _ aus 'lodash' importieren möchten, dann importieren Sie loadash durch TypeScript Definition Manager (tsd). in Terminal, tun Sie es als

tsd lodash --save

-1

Um lodash oder einem Dritten Libs installieren verwenden Sie diese Schritte ausführen müssen.

  1. zu installieren und lodash laufen ..

    npm i -S lodash 
    
  2. zu installieren und speichern lodash Typoskript Definitionen laufen ..

    typings install dt~lodash --global --save 
    
  3. aktualisieren systemjs.config speichern .js, damit SystemJS weiß, wo finden lodash

    var map = { 
        // ... 
        'lodash': 'node_modules/lodash/lodash.js' 
    }; 
    
  4. aktualisieren karma.conf.js zu lodash Verfügung, um Ihr Karma Test Runner-Browser zu machen

    {pattern: 'node_modules/lodash/**/*.js', included: false, watched: false} 
    
  5. Dann in Ihrer Typoskript .ts-Datei ...

    import * as _ from 'lodash'; 
    

JOB FERTIG!