2017-06-08 11 views
1

私のプロジェクトにはCognitoを使用しようとしていますが、必要な設定をすべて実行すると、そして、私のラムダテストコンソールで、私は次のエラーを取得する:aws cognitoのモジュールが見つかりません:errorMessage ":"モジュールが見つかりません './lib/browser_loader

{ 
    "errorMessage": "Cannot find module './lib/browser_loader'", 
    "errorType": "Error", 
    "stackTrace": [ 
    "Function.Module._load (module.js:417:25)", 
    "Module.require (module.js:497:17)", 
    "require (internal/module.js:20:19)", 
    "Object.<anonymous> (/var/task/index.js:3651:1)", 
    "__webpack_require__ (/var/task/index.js:20:30)", 
    "webpackUniversalModuleDefinition (/var/task/index.js:149:28)", 
    "Object.<anonymous> (/var/task/index.js:156:3)", 
    "__webpack_require__ (/var/task/index.js:20:30)", 
    "Object.<anonymous> (/var/task/index.js:75:18)" 
    ] 
} 

私は、次のリンクに記載された指示に従います。https://github.com/aws/amazon-cognito-identity-js

だから私は、最初のコードを変換するためのWebPACKとJSONローダーを使用しています。ここに私のWebPACKコードは次のとおりです。

{ 
    "name": "bnitjouathprovider", 
    "version": "0.0.1", 
    "description": "provide the server for password management using cognito", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "build": "webpack" 
    }, 
    "author": "Hamed Minaee", 
    "license": "ISC", 
    "devDependencies": { 
    "amazon-cognito-identity-js": "^1.18.0", 
    "aws-sdk": "git://github.com/chrisradek/aws-sdk-js.git#webpack", 
    "babel-core": "^6.24.1", 
    "babel-loader": "^7.0.0", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-stage-0": "^6.24.1", 
    "brfs": "^1.4.3", 
    "json-loader": "^0.5.4", 
    "transform-loader": "^0.2.4", 
    "webpack": "^3.0.0-rc.1" 
    }, 
"dependencies": { 
    "amazon-cognito-identity-js": "^1.18.0" 
}, 
"babel": { 
    "presets": [ 
    "es2015", 
    "stage-0" 
    ] 
} 
} 

ここに私のwebpack.configです:

var path = require("path"); 
var DIST_DIR = path.resolve(__dirname, "dist"); 
module.exports = { 
// Example setup for your project: 
// The entry module that requires or imports the rest of your project. 
// Must start with `./`! 
entry: './', 
// Place output files in `./dist/my-app.js` 
output: { 
    path: DIST_DIR, 
    filename: 'index.js' 
}, 
module: { 
    noParse: [ 
     /aws\-sdk/, 
    ], 
    loaders: [ 
     { 
      test: /\.json$/, 
      loader: 'json' 
     } 
    ] 
} 
}; 

だから今、私は私のコード変換をする準備ができなければならないと仮定します。ここに私のコードはあります:

var AWSCognito = require('amazon-cognito-identity-js/dist/amazon-cognito- 
identity'); 


exports.handler = function (event, context, callback) { 
    registerUset(); 
    callback(null, "some success message"); 

} 


var registerUset = function() { 

} 

あなたが見るように、それは何もない単純なJavaスクリプトコードです。今私がするとき:npmを実行するビルド私はコンパイルされたjsファイルを参照してくださいと私はエラーが発生しません。 私はJSおよびノー​​ドモジュールフォルダを圧縮し、ラムダコンソールでそれをアップロードし、テストするときしかし、私は次のエラーを取得する:

"errorMessage": "Cannot find module './lib/browser_loader'" 

フルスタックは、ポストの最初に掲載されています。私にとっては意味がありません。それはawsのバグか私はsthが足りないですか?

答えて

1

誰もが同じ問題に直面している場合、私は場合は私の問題への解決策を見つけた:へ

ありがとう:

http://www.rricard.me/es6/aws/lambda/nodejs/2015/11/29/es6-on-aws-lambda.html

だから基本的に私はそうローダーとしてバベルとJSONの両方を使用する必要がありますソリューションを解決するための重要な部分は次のとおりです。

module: { 
loaders: [ 
    { 
    test: /\.js$/, 
    exclude: /node_modules/, 
    loader: 'babel', 
    query: { 
    presets: ['es2015'], 
     plugins: ['syntax-flow', 'transform-flow-strip-types'] 
     } 
    }, 
    { 
     test: /\.json$/, 
     loader: 'json' 
    } 
    ] 
    } 
関連する問題