From 3b2cc6bd305263f17a5d1d52d4bb03bf9025e9c3 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 13 Jun 2018 15:37:41 -0400 Subject: [PATCH] feat: apply minimal transpilation when building as web component --- packages/@vue/babel-preset-app/index.js | 29 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/@vue/babel-preset-app/index.js b/packages/@vue/babel-preset-app/index.js index 624b61f1a..1c88e5214 100644 --- a/packages/@vue/babel-preset-app/index.js +++ b/packages/@vue/babel-preset-app/index.js @@ -48,11 +48,30 @@ module.exports = (context, options = {}) => { decoratorsLegacy } = options - const targets = process.env.VUE_CLI_BABEL_TARGET_NODE - ? { node: 'current' } - : process.env.VUE_CLI_MODERN_BUILD - ? { esmodules: true } - : rawTargets + // resolve targets + let targets + if (process.env.VUE_CLI_BABEL_TARGET_NODE) { + // running tests in Node.js + targets = { node: 'current' } + } else if (process.env.VUE_CLI_BUILD_TARGET === 'wc' || process.env.VUE_CLI_BUILD_TARGET === 'wc-async') { + // targeting browsers that at least support ES2015 classes + // https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugins.json#L52-L61 + targets = { + browsers: [ + 'Chrome >= 49', + 'Firefox >= 45', + 'Safari >= 10', + 'Edge >= 13', + 'iOS >= 10', + 'Electron >= 0.36' + ] + } + } else if (process.env.VUE_CLI_MODERN_BUILD) { + // targeting browsers that support