2017-05-25 6 views
1

bündeln Da mein vorheriger Beitrag on another question gelöscht wurde, obwohl es ziemlich explizit in der Darstellung des Problems war (in diesem Zusammenhang), werde ich es erneut als eigenständige Frage versuchen.Wie man AWS Cognito in Aurelia Framework

Ich versuche, Amazon Cognito mit aurelia.json zu bündeln. Ich habe alles verfolgt, was ich in den Antworten von Jsachs und Nathan in der mentioned article abmildern konnte, aber ich denke, etwas ist unvollständig.

{ 
    "name": "account-components-bundle.js", 
    "source": { 
     "include": [ 
     "**/components/account/**/*.js", 
     "**/components/account/**/*.{html,css}" 
     ] 
    }, 
    "dependencies": [ 
     { 
      "name": "aws-sdk", 
      "path": "../node_modules/aws-sdk/dist", 
      "main": "aws-sdk.min", 
      "exports": "AWS" 
     } 
    ], 
    "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", 
     "node_modules/requirejs/require.js" 
    ] 
    }, 

Wenn Sie nur die prepend Richtlinie hinzufügen, werden au build keine Fehler werfen, aber ich habe keine Möglichkeit, die Cognito Klassen aufrufen.

Hinzufügen der Richtlinie Abhängigkeiten in der obigen Form wird schließlich das Paket bündeln, jedoch bei Laden der Seite werden Sie die folgende Fehlermeldung erhalten (bitte beachten Sie ich noch nichts in unserem eigenen Code aufrufen):

Unhandled rejection Error: Script error for "aws-sdk/global", needed by: components/account/login 
http://requirejs.org/docs/errors.html#scripterror 
    at makeError (https://white.dev/dist/aurelia-bundle.js:4419:17) 
    at HTMLScriptElement.onScriptError (https://white.dev/dist/aurelia-bundle.js:5989:36) 
From previous event: 
    at DefaultLoader.loadModule (https://white.dev/dist/aurelia-bundle.js:14914:14) 
    at ViewEngine.importViewModelResource (https://white.dev/dist/aurelia-bundle.js:23006:26) 
    at CompositionEngine.ensureViewModel (https://white.dev/dist/aurelia-bundle.js:24276:32) 
    at CompositionEngine.createController (https://white.dev/dist/aurelia-bundle.js:24252:19) 
    at CompositionEngine._createControllerAndSwap (https://white.dev/dist/aurelia-bundle.js:24227:19) 
    at CompositionEngine.compose (https://white.dev/dist/aurelia-bundle.js:24313:21) 
    at processInstruction (https://white.dev/dist/aurelia-bundle.js:24798:32) 
    at Compose.bind (https://white.dev/dist/aurelia-bundle.js:24689:7) 
    at Controller.bind (https://white.dev/dist/aurelia-bundle.js:23196:24) 
    at View.bind (https://white.dev/dist/aurelia-bundle.js:21200:24) 
    at If._runValueChanged (https://white.dev/dist/aurelia-bundle.js:24887:19) 
    at If.valueChanged (https://white.dev/dist/aurelia-bundle.js:24842:31) 
    at If.bind (https://white.dev/dist/aurelia-bundle.js:24831:12) 
From previous event: 
    at CompositionEngine._createControllerAndSwap (https://white.dev/dist/aurelia-bundle.js:24227:45) 
    at CompositionEngine.compose (https://white.dev/dist/aurelia-bundle.js:24313:21) 
    at TemplatingEngine.compose (https://white.dev/dist/aurelia-bundle.js:24576:38) 
    at Aurelia.setRoot (https://white.dev/dist/aurelia-bundle.js:13886:21) 
    at Object._callee$ (https://white.dev/dist/app-bundle.js:86:37) 
    at tryCatch (https://white.dev/dist/aurelia-bundle.js:3:27199) 
    at Generator.invoke [as _invoke] (https://white.dev/dist/aurelia-bundle.js:3:28901) 
    at Generator.t.(anonymous function) [as next] (https://white.dev/dist/aurelia-bundle.js:3:27447) 
    at step (https://white.dev/dist/app-bundle.js:25:44) 
    at https://white.dev/dist/app-bundle.js:36:29 
From previous event: 
    at step (https://white.dev/dist/app-bundle.js:35:55) 
    at https://white.dev/dist/app-bundle.js:43:24 
From previous event: 
    at Object.<anonymous> (https://white.dev/dist/app-bundle.js:22:20) 
    at Object.configure (https://white.dev/dist/app-bundle.js:97:25) 
    at https://white.dev/dist/aurelia-bundle.js:12465:29 
From previous event: 
    at config (https://white.dev/dist/aurelia-bundle.js:12460:56) 
    at https://white.dev/dist/aurelia-bundle.js:12496:14 
From previous event: 
    at bootstrap (https://white.dev/dist/aurelia-bundle.js:12495:26) 
    at https://white.dev/dist/aurelia-bundle.js:12482:9 
    at <anonymous> 
From previous event: 
    at run (https://white.dev/dist/aurelia-bundle.js:12477:61) 
    at Object.<anonymous> (https://white.dev/dist/aurelia-bundle.js:12502:37) 
    at Object.execCb (https://white.dev/dist/aurelia-bundle.js:5947:33) 
    at Module.check (https://white.dev/dist/aurelia-bundle.js:5134:51) 
    at Module.enable (https://white.dev/dist/aurelia-bundle.js:5427:22) 
    at Object.enable (https://white.dev/dist/aurelia-bundle.js:5808:39) 
    at Module.<anonymous> (https://white.dev/dist/aurelia-bundle.js:5412:33) 
    at https://white.dev/dist/aurelia-bundle.js:4385:23 
    at each (https://white.dev/dist/aurelia-bundle.js:4310:31) 
    at Module.enable (https://white.dev/dist/aurelia-bundle.js:5364:17) 
    at Module.init (https://white.dev/dist/aurelia-bundle.js:5039:26) 
    at https://white.dev/dist/aurelia-bundle.js:5711:36 

In dem Moment, ich gehe weiter und versuchen, die Abhängigkeiten zu erweitern (nicht die bereits kompilierten Bibliotheken verwenden), komme ich zu dem gleichen alten Problem in der previous post erwähnt.

"dependencies": [ 
     { 
     "name": "lodash", 
     "path": "../node_modules/lodash", 
     "main": "index" 
     }, 
     { 
     "name": "xmlbuilder", 
     "path": "../node_modules/xmlbuilder", 
     "main": "lib/index" 
     }, 
     { 
      "name": "aws-sdk", 
      "path": "../node_modules/aws-sdk", 
      "main": "lib/aws", 
      "exports": "AWS" 
     } 
    ], 

Diese Abhängigkeiten, wenn au build läuft, wird führen

File not found or not accessible: /path/to/project/node_modules/aws-sdk/lib/region_config_data.json.js. Requested by /path/to/project/node_modules/aws-sdk/lib/aws.js 
{ Error: ENOENT: no such file or directory, open '/path/to/project/node_modules/aws-sdk/lib/region_config_data.json.js' 
    at Object.fs.openSync (fs.js:584:18) 
    at Object.fs.readFileSync (fs.js:491:33) 
    at Object.exports.readFileSync (/path/to/project/node_modules/aurelia-cli/lib/file-system.js:74:13) 
    at fileRead (/path/to/project/node_modules/aurelia-cli/lib/build/bundled-source.js:101:27) 
    at Object.context.fileRead (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:179:18) 
    at Object.context.load (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:370:32) 
    at Module.load (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:832:29) 
    at Module.fetch (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:822:66) 
    at Module.check (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:854:30) 
    at Module.enable (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:1173:22) 
errno: -2, 
code: 'ENOENT', 
syscall: 'open', 

ich denke, das durch die Tatsache verursacht wird, dass requirejs im Vergleich zu nodejs require() nicht Laden json-Dateien unterstützen kann und es erwartet immer die Datei ein js sein.

An diesem Punkt meiner Fehlersuche bin ich irgendwie festgefahren. Hat jemand Vorschläge, wie dies erreicht werden kann? Ich wäre sehr dankbar.

Um zu vermeiden und einige frühere Fragen zu meinen Ansätzen auszuschließen, habe ich versucht, zu den Bundle-Abhängigkeiten "amazon-cognito-identity-js" auch in mehr als einem Formular (dist und lib Dateien) hinzuzufügen. Das Ergebnis ist das gleiche wie oben. Ich bleibe bei json.js Fehler stecken.

Edit 1

ich es geschafft, alle für aurelia.json Fehler mit dem folgenden Formular kompilieren zu reinigen, aber die Klassen nicht richtig geladen werden.

"bundles": [ 
    { 
    "name": "app-bundle.js", 
    "source": { 
     "include": [ 
     "**/src/main.js", 
     "**/src/app.js", 
     "**/src/environment.js", 
     "**/src/app.{html,css}" 
     ] 
    } 
    }, 
    ... 
    { 
    "name": "vendor-bundle.js", 
    "dependencies": [ 
     ... 
     { 
     "name": "lodash", 
     "path": "../node_modules/lodash", 
     "main": "index" 
     }, 
     { 
     "name": "xmlbuilder", 
     "path": "../node_modules/xmlbuilder", 
     "main": "lib/index" 
     }, 
     { 
     "name": "aws-sdk", 
     "path": "../node_modules/aws-sdk", 
     "main": "dist/aws-sdk", 
     "exports": "AWS" 
     } 
    ], 
    "append": [ 
     "node_modules/amazon-cognito-identity-js/dist/aws-cognito-sdk.min.js", 
     "node_modules/amazon-cognito-identity-js/dist/amazon-cognito-identity.min.js" 
    ] 
    }, 
    ... 
] 
+0

Haben Sie versucht, die JSON-Datei zur Liste der Dateien hinzufügen, die für diese dep enthalten sein müssen? –

+0

@AshleyGrant Habe versucht den folgenden '{" name ":" aws-sdk "," Pfad ":" ../node_modules/aws-sdk "," main ":" lib/aws "," exportiert ":" AWS "," Ressourcen ": [" lib/region_config_data.json "]}'. Das Ergebnis ist das gleiche. –

Antwort

1

Lustig die Antwort selbst zu geben, aber hey ... wenn es anderen helfen wird ...

ich es geschafft, die Skripte zu bündeln, indem sie in der aurelia-bundle.js vor jeder Voranstellen andere Skripte, die geladen werden müssen. Bitte haben Sie Verständnis dafür, dass (für mich), wenn Sie die Skripte in einer anderen Position platzieren als die folgenden, nicht korrekt geladen werden oder gar nicht geladen werden.

Tun Sie nicht, dass dies eine allgemeine Lösung ist, aber hey ... funktioniert für mich. finden Sie eine detailliertere Geschichte here.

{ 
    "name": "aurelia-bundle.js", 
    "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/babel-polyfill/dist/polyfill.min.js", 
    "node_modules/whatwg-fetch/fetch.js", 
    "node_modules/bluebird/js/browser/bluebird.core.js", 
    "node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird.js", 
    "node_modules/requirejs/require.js" 
    ], 
    "dependencies": [ 
    "aurelia-animator-css", 
    "aurelia-binding", 
    "aurelia-bootstrapper", 
    "aurelia-dependency-injection", 
    "aurelia-event-aggregator",