AWS 람다 번들로 ES6, babel 및 Webpack 2를 사용하고 있습니다. 그런 다음 AWS SAM 로컬을 사용하여 테스트를 수행하고 있습니다. 내가 API를 쳤을 때 나는 다음과 같은 오류가 - 내 webpack.config.js 여기Webpack 및 AWS Lambda 문제 - 모듈에서 누락 된 처리기
Handler 'handler' missing on module 'dist/main'
입니다 -
const path = require('path');
module.exports = {
entry: './index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js',
libraryTarget: 'commonjs'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
plugins: [require('babel-plugin-transform-flow-strip-types')],
presets: [
[
'env',
{
target: { node: 6.10 }, // Node version on AWS Lambda
useBuiltIns: false,
loose: false,
exclude: [],
debug: false
},
],
],
},
}
],
}
};
을 그리고 여기에 컴파일 된 main.js의 조각입니다 -
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handler = handler;
var _amazonCognitoIdentityJs = __webpack_require__(60);
var _aws_profile = __webpack_require__(290);
// A signin Lambda function
function handler(event, context, callback) {
switch (event.httpMethod) {
case "GET":
약간의 배경 .... 이것은 람다입니다. 처음에 ES6에는 쓰지 않았고 Webpack을 사용하여 번들링하지 않았고 작동했습니다. 이제 ES6에 있어야하고 Webpack에서 작업해야합니다. N.B. 이 웹팩 2
많은 덕분에 ...입니다
당신이 목표의 대상이 시도 할 수 있습니다 : [ {이름 : "노드", 버전 : 6} ] 또는 – Pandelis
감사 Pandelis . 나는 [{name : "node", version : 6}]로 목표를 변경하려고 시도했는데 같은 핸들러에 오류가 없습니다 .... 당신은 '또는'귀하의 의견에서 잘 랐을 다른 제안이 있었습니까? \t \t \t 옵션 '바벨 로더를': { \t \t \t \t 사전 설정 : [ \t \t \t \t 로더 : – SamBrick
죄송 예 아차 나는거야 내가 일반적으로 단지 ES2015과 같이 목표로 내 바벨을 구성 할 말을했다 \t [ 'es2015'{ \t \t \t \t \t \t 모듈 : \t \t거짓\t \t}] \t \t \t \t, 을하지만 다른 문제가있는 것 같습니다 죄송합니다. – Pandelis