diff --git a/lib/build.js b/lib/build.js index 094b22f5..6a5b6cf3 100644 --- a/lib/build.js +++ b/lib/build.js @@ -4,14 +4,24 @@ var conf = require("./config"); var webpack = require("webpack"); var merge = require("webpack-merge"); +// custom babel target for each node version +function getBabelTarget(envConfig){ + var key = "AWS_LAMBDA_JS_RUNTIME"; + var runtimes = ["nodejs8.10", "nodejs4.3.2", "nodejs6.10.3"]; + var current = envConfig[key] || process.env[key] || "nodejs6.10.3"; + var unknown = runtimes.indexOf(current) === -1; + return unknown ? "6.10" : current.replace(/^nodejs/, ''); +} + function webpackConfig(dir, additionalConfig) { var config = conf.load(); + var envConfig = config.build.environment || config.build.Environment || {}; var babelOpts = {cacheDirectory: true}; if (!fs.existsSync(path.join(process.cwd(), '.babelrc'))) { babelOpts.presets = [ ["env", { targets: { - node: "6.10" + node: getBabelTarget(envConfig) } }] ]; @@ -32,7 +42,6 @@ function webpackConfig(dir, additionalConfig) { // Include environment variables from config if available var defineEnv = {}; - var envConfig = config.build.environment || config.build.Environment || {}; Object.keys(envConfig).forEach((key) => { defineEnv["process.env." + key] = JSON.stringify(envConfig[key]); });