So importieren Sie nicht-Kern-npm-Modulen im Winkel 2 z.B. (ein Krypto-Bibliothek)?

In meinem Winkel 2 app (SystemJS Modul-manager, Typoskript als scripting-Sprache) brauche ich zum importieren einer npm-Modul zur Verschlüsselung (entweder Crypto-JS;Schmiede-JS oder irgendeinem anderen Zweck dienen)

Im Fall von CryptoJS, nach der Installation über npm installieren * ich habe versucht, durch Zugabe von:

  <script src="node_modules/crypto-js/crypto-js.js"></script>

in index:html.

Die in meinem Dienst (- app/services/my-service.service.ts) ich importieren über

  import {CryptoJS} from 'node_modules/crypto-js/crypto-js.js' //or /aes.js --> same issue

Aber der import funktioniert nicht richtig, wie zum Beispiel

 console.log(CryptoJS);

Drucke undefined.

Ich habe auch versucht, fügen Sie den Modul-Pfad in

 System.config({
     //...
     map: {
        CryptoJS
    }
}

importieren und es in meinem Dienst durch

 import {CryptoJS} from 'cryptoJs';

Während ich bin mir nicht sicher, was soll ich eigentlich in SystemJS config, keine der Lösungen, die ich versuchte gearbeitet.

BEARBEITEN ich auch versucht...

//import ... as to overcome no default export
import * as CryptoJS from 'node_modules/crypto-js/crypto-js.js';

aber dann

 console.log(CryptoJS.); 

gibt kein AES/whatever-Methode (mein editor in der Regel Hinweise, welche Methoden ich verwenden könnte, per auto-Vervollständigung)

EDIT 2 jetzt vielen Dank an Thierry und PierreDuc Beitrag es ist klar, dass die Testungen und das Modul zu importieren sind nicht verknüpfte Konzepte.

Aber keiner von Ihnen arbeitet. Dies ist, was ich getan habe:

Ich heruntergeladen CryptoJS-Testungen Datei, steckte es in Testungen/cryptojs/cryptojs.d....ts

Dann habe ich

  ///<reference path="cryptojs/cryptojs.d.ts"/>

zu - Testungen/main.d....ts

Dann habe ich cryptojs in SystemJS die map config:

   cryptojs: "node_modules/crypto-js/crypto-js.js"

Schließlich habe ich versucht zu importieren cryptojs in meinem Dienst durch

  import CryptoJS from 'cryptojs'

Soweit ich sehe, gibt es 2 Probleme:

  • - Testungen werden nicht geladen, da es keine autocompletion, wenn ich versuche, das Modul importieren (ich habe auch versucht, starten Sie den Winkel-2 app). Vielleicht hatte ich nicht verstanden, wie der import externer Testungen?
  • das Modul wird nicht geladen, trotzdem kann ich sehen, dass auf der Konsole aus.log(cryptojs) (nichts wird gedruckt, auch nicht undefined; unwahrscheinlich meine bisherigen versuche)

EDIT 3

Schließlich habe ich die import-Arbeit Dank an Thierry und PierreDuc Beratung (nicht sicher, was falsch gelaufen ist auf dem ersten Platz).
Aber ich habe noch Probleme mit Testungen.

Trotz legte ich

  ///<reference path="../../typings/cryptojs/cryptojs.d.ts"/>

direkt in meinen Dienst, wenn ich Schreibe

  import CryptoJS from 'cryptojs';

nur unter dieser Zeile bekomme ich keine Autovervollständigung und wenn ich starten Eckig 2-app über die von npm start ; bekomme ich folgende Fehlermeldung und die app nicht starten

  app/services/user.service.ts(6,22): error TS2307: Cannot find module 'cryptojs'.

HINWEIS: Wenn ich cryptojs zu SystemJS config (aber nicht a ) und schreiben Sie dann (ohne zu importieren)

console.log(CryptoJS.AES.encrypt('my message', 'secret key123').toString());

es genau funktioniert, aber ich würde eher zu lösen, die Testungen + import-Probleme.

  • fügen Sie CryptoJS Definitiv Typisierte, um Ihre Testungen, und die crypto-js.js zu Ihrem index.html und Sie sollten gut zu gehen. Vergessen Sie nicht, fügen Sie ein /// <reference path="typings/cryptojs/cryptojs.d.ts"/> zu Ihrer bootstrap-Datei
  • Die Antworten hier sind arbeiten für die neuesten eckige version von heute?
InformationsquelleAutor dragonmnl | 2016-04-21
Schreibe einen Kommentar