2017-05-25 6 views
1

前の投稿on another questionが削除されていたので、(その文脈で)問題を提示するのはかなり明白でしたが、私は再び独立した質問としてやり直します。AWS CognitoをAurelia Frameworkにバンドルする方法

私はAmazon Cognitoをaurelia.jsonにバンドルしようとしています。私はmentioned articleのjsachsとNathanによって提供された回答で、私が細くすることのできるものすべてを追ってきましたが、何かが不完全だと思います。

{ 
    "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" 
    ] 
    }, 

あなただけの先頭に追加ディレクティブを追加した場合、au buildは、しかし、私はCognitoクラスを呼び出す方法はありません、エラーがスローされません。

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 

あなたは(私は私たち自身のコード内ではまだ何も呼び出しておりませんのでご注意下さい)次のエラーを取得しますが、ページの読み込み時に、上記最終的にパッケージをバンドルするフォームで依存関係のディレクティブを追加します

私がさらに進んで依存関係を拡張しようとすると(既にコンパイルされたライブラリを使用していない)、previous postに記載されているのと同じ古い問題が発生します。 au buildを実行するときに

"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" 
     } 
    ], 

この依存関係、

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', 

につながると私は、これはnodejs require()と比較してrequirejsがロードJSONファイルをサポートしていない可能性があるという事実によって引き起こされ、それが常にファイルを見込んだと思いますjsです。

私のデバッグクエストのこの時点で私はちょっと固まっています。どのようにこれを達成することができるでしょうか?私は非常に感謝されます。

これまでの質問を回避するために、複数のフォーム(distlibの両方のファイル)でバンドルの依存関係「amazon-cognito-identity-js」を追加しようとしました。結果は上記と同じです。私はjson.jsエラーで立ち往生します。

編集1

私は、すべてのaurelia.jsonについて次のような形式でコンパイルエラーをきれいにするために管理しかし、クラスが適切にロードされていません。

私は先に、すべてのアウレリア-bundle.jsでそれらを付加することで、スクリプトをバンドルするために管理
"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

そのデポに含める必要があるファイルのリストにjsonファイルを追加しようとしましたか? –

+0

@AshleyGrant以下の '{" name ":" aws-sdk "、" path ":" ../node_modules/aws-sdk "、" main ":" lib/aws "、" exports ":" AWS "、" resources ":[" lib/region_config_data.json "]}'。結果は同じです。 –

答えて

1

おかしいが、それは他の人を助けるならば...自分自身に答える、ちょっと与えるために...

ロードする必要のある他のスクリプト。私にとって、スクリプトは次のような位置に置いても、正しく読み込まれたり読み込まれたりすることはありません。

これは一般的な解決策ではありませんが、ねえ...私のために働きます。 詳細な履歴は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", 
関連する問題