aws lambda webpack生成的文件

时间:2017-11-01 01:57:18

标签: amazon-web-services webpack aws-lambda

我尝试使用通过webpack生成的处理程序部署aws lambda函数。这是最终的webpack文件。为了便于理解,我删除了大部分标准webpack代码。

/******/ (function(modules) { // webpackBootstrap
/******/    // The module cache
/******/    var installedModules = {};
/******/
/******/    // The require function
/******/    function __webpack_require__(moduleId) {


/******/ }
/************************************************************************/
/******/ ({

/***/ "./storesHandler.js":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports.get = function (event, context, callback) {
  var response = {
    statusCode: 200,
    body: JSON.stringify({
      message: 'Go Serverless v1.0! Your function executed successfully!',
      input: event
    })
  };

  callback(null, response);

  // Use this code if you don't use the http event with the LAMBDA-PROXY integration
  // callback(null, { message: 'Go Serverless v1.0! Your function executed successfully!', event });
};

/***/ }),

/***/ 0:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("./storesHandler.js");


/***/ })

/******/ });

但是,当我尝试执行在AWS上部署的功能时,我收到以下错误。该文件的名称是storesHandler.js

{
  "errorMessage": "Handler 'get' missing on module 'storesHandler'"
}

1 个答案:

答案 0 :(得分:3)

我解决了这个问题。为了防止其他人遇到同样的问题,修复程序位于webpack.config.js文件中。在输出部分,我不得不提到commonjs和libraryTarget。

output: {
    libraryTarget: 'commonjs',
    path: path.join(__dirname, '../build'),
    filename: 'storesHandler.js'
}