2016-09-27 5 views
8

Ich versuche das Amazon Cognito Identity SDK in Aurelia funktionieren zu lassen. Ich habe nicht viel Javascript Erfahrung und bin mit den verschiedenen Abhängigkeitssystemen nicht vertraut.Wie kann ich das Amazon Cognito Identity SDK in Aurelia verwenden?

installiert ich das Cognito SDK: npm install --save amazon-cognito-identity-js

ich meine bearbeitet dann aurelia_project/aurelia.json Datei in der Aurelia Dokumentation vorgeschlagen als eine neue Client-Bibliothek Abhängigkeit in build.bundles hersteller Bündel Abhängigkeiten enthalten:

"sjcl", 
"jsbn", 
{ 
    "name": "aws-sdk", 
    "path": "../node_modules/aws-sdk/", 
    "main": "dist/aws-sdk" 
}, 
{ 
    "name": "amazon-cognito-identity-js", 
    "path": "../node_modules/amazon-cognito-identity-js/dist", 
    "main": "amazon-cognito-identity.min" 
} 

Wenn ich jedoch versuche, den Code mit au run auszuführen, erhalte ich den Fehler: Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/xmlbuilder.js'

Ich habe versucht, xmlbuilder in meine aurelia.js aufzunehmen ohne Erfolg. Wenn es enthalten ist, bekomme ich diesen Fehler über lodash: Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/lodash/object/assign.js'

Ich habe keine Möglichkeit gefunden, über die Lodash-Fehler zu erhalten.

Gibt es jemanden da draußen, der mit dem Aurelia-Abhängigkeitssystem vertraut ist, das helfen könnte?

Danke, Nathan

EDIT # 2: Während ich an den xmlbuilder/lodash Fehler bekam, habe ich in weitere Fehler laufen versuchen, die aws-sdk zu bündeln. Hier ist meine aktuelle aurelia.json:

"dependencies": [ 
    { 
    "name": "xmlbuilder", 
    "path": "../node_modules/xmlbuilder/lib", 
    "main": "index" 
    }, 
    { 
    "name": "aws-sdk", 
    "path": "../node_modules/aws-sdk", 
    "main": "index", 
    "resources": ["lib/region_config.json"] 
    }, 

Und die Fehler, die ich zur Zeit bin immer:

Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/crypto.js'

Wenn ich die Ressourcen (lib/region_config.json) entfernen, dann bekomme ich diesen Fehler stattdessen : Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/node_modules/aws-sdk/lib/region_config.json.js'

ich denke, Krypto in aws-sdk/lib/util.js definiert tatsächlich ein Objekt ist, das durch aws-sdk/lib/region_config.js erforderlich ist.

Antwort

6

Probieren Sie die kompilierte Bibliothek statt, mit der kompilierten Bibliothek gebündelt einfach gut. Auch scheint die Bibliothek window.AWS zu definieren, so dass es die Injektion oder nicht funktionieren

{ 
    "name": "aws-sdk", 
    "path": "../node_modules/aws-sdk/dist", 
    "main": "aws-sdk.min", 
    "exports": "AWS" 
} 

UPDATE:

es den einzigen Weg scheint, ist diese Bibliotheken importieren, indem Sie den prepend Abschnitt verwenden, die Bibliotheken schreiben, um die Fenstervariable, so dass Sie immer noch auf Ihre App-Skripte zugreifen können, indem Sie sie nicht wie ES6-Module importieren.

"prepend": [ 
     "node_modules/aws-sdk/dist/aws-sdk.min.js", 
     "node_modules/amazon-cognito-identity-js/dist/aws-cognito-sdk.min.js", 
     "node_modules/amazon-cognito-identity-js/dist/amazon-cognito-identity.min.js", 
     "node_modules/bluebird/js/browser/bluebird.core.js", 
     "scripts/require.js" 
    ], 
+0

, das funktioniert für den AWS-SDK allein, aber sobald ich die amazon-cognito-Identität-js hinzufügen klagt es über 'Fehler: ENOENT: keine solche Datei oder das Verzeichnis, offen‚/ Users/nathanskone/Projects/scc/aurelia-app/node_module/aws-sdk/lib/region_config.json.js'' noch einmal. –

+0

Das hat es geschafft! Allerdings musste ich auch jsbn und sjcl zum Prepend-Abschnitt hinzufügen, da beide vom Amazon Cognito SDK benötigt werden. –

Verwandte Themen