diff --git a/lib/build.js b/lib/build.js index 66ec33fd..af2d2afa 100644 --- a/lib/build.js +++ b/lib/build.js @@ -13,11 +13,27 @@ function getBabelTarget(envConfig) { return unknown ? "6.10" : current.replace(/^nodejs/, ""); } +function haveBabelrc(functionsDir) { + const cwd = process.cwd(); + + return ( + fs.existsSync(path.join(cwd, ".babelrc")) || + functionsDir.split("/").reduce((foundBabelrc, dir) => { + if (foundBabelrc) return foundBabelrc; + + const indexOf = functionsDir.indexOf(dir); + const dirToSearch = functionsDir.substr(0, indexOf); + + return fs.existsSync(path.join(cwd, dirToSearch, ".babelrc")); + }, false) + ); +} + 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"))) { + if (!haveBabelrc(dir)) { babelOpts.presets = [ ["@babel/preset-env", { targets: { node: getBabelTarget(envConfig) } }] ]; @@ -48,7 +64,7 @@ function webpackConfig(dir, additionalConfig) { var webpackConfig = { mode: "production", resolve: { - extensions: ['.wasm', '.mjs', '.js', '.json', '.ts'] + extensions: [".wasm", ".mjs", ".js", ".json", ".ts"] }, module: { rules: [
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: