diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..a700976 --- /dev/null +++ b/.babelrc @@ -0,0 +1,17 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "edge": "17", + "firefox": "60", + "chrome": "67", + "safari": "11.1" + }, + "corejs": 2, + "useBuiltIns": "usage" // @babel/polyfill 配置:usage 按需加载 ECMAscript 规范库 + } + ] + ] +} diff --git a/package.json b/package.json index dd5bcf1..423ac14 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,12 @@ }, "devDependencies": { "@babel/core": "^7.14.2", + "@babel/polyfill": "^7.12.1", "@babel/preset-env": "^7.14.2", "@vue/cli-plugin-babel": "~4.5.0", "@vue/compiler-sfc": "^3.0.11", "babel-loader": "^8.2.3", + "core-js": "2", "css-loader": "^5.2.6", "eslint": "^7.27.0", "eslint-config-prettier": "^8.3.0", @@ -51,11 +53,11 @@ "vue-loader": "^15.9.7", "vue-loader-next": "npm:vue-loader@^16.2.0", "vue-style-loader": "^4.1.3", + "vue-template-compiler": "^2.6.14", "webpack": "5", "webpack-cli": "^4.7.0", "webpack-dev-server": "^3.11.2", - "worker-loader": "^3.0.5", - "vue-template-compiler": "^2.6.14" + "worker-loader": "^3.0.5" }, "peerDependencies": { "vue": "^2.x || ^3.x" diff --git a/webpack.config.js b/webpack.config.js index 4257009..2aa7400 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -10,9 +10,25 @@ const baseConfig = { module: { rules: [ { - test: /\.js$/, + test: /\.m?js$/, loader: 'babel-loader', exclude: /node_modules/, + options: { + presets: [ + [ + '@babel/preset-env', + { + targets: { + edge: '17', + firefox: '60', + chrome: '67', + safari: '11.1', + }, + useBuiltIns: 'usage', + }, + ], + ], //Preset used for env setup + }, }, { test: /\.vue$/, diff --git a/yarn.lock b/yarn.lock index d566179..5e6f926 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1412,6 +1412,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/polyfill@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.12.1.tgz#1f2d6371d1261bbd961f3c5d5909150e12d0bd96" + integrity sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + "@babel/preset-env@^7.11.0": version "7.16.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" @@ -3368,6 +3376,11 @@ core-js-compat@^3.18.0, core-js-compat@^3.19.1, core-js-compat@^3.6.5: browserslist "^4.18.1" semver "7.0.0" +core-js@2, core-js@^2.6.5: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + core-js@^3.6.5: version "3.19.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.2.tgz#ae216d7f4f7e924d9a2e3ff1e4b1940220f9157b"