作者:夏未夏至青_872 | 来源:互联网 | 2024-11-25 16:44
index.js全部js兼容性处理。js内引入babelpolyfill全部js兼容性处理。babelpolyfillimportbabelpolyfill;constadd
index.js
- 全部js兼容性处理。js内引入babel/polyfill
// 全部js兼容性处理。 @babel/polyfill
import '@babel/polyfill';const add = (x, y) => {return x + y;
}
console.log(add(3, 5));const promise = new Promise((resolve) => {setTimeout(() => {console.log('定时器执行完了~');resolve();}, 1000)
})
console.log(promise);
- 兼容性处理的: 按需加载。 core-js,需要webpack中配置
// import '@babel/polyfill';const add = (x, y) => {return x + y;
}
console.log(add(3, 5));const promise = new Promise((resolve) => {setTimeout(() => {console.log('定时器执行完了~');resolve();}, 1000)
})console.log(promise);
webpack.config.js
const {resolve} = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {entry: './src/js/index.js',output: {filename: 'js/build.js',path: resolve(__dirname, 'build')},module: {rules: [/*** js兼容性处理: babel-loader @babel/core @babel/preset-env* 1. 基本js兼容性处理 @babel/preset-env* 问题: 只能转换基本语法,如promise不能转换* 2. 全部js兼容性处理。 @babel/polyfill* 问题: 只要解决部分兼容性问题,但是所有兼容性代码全部引入,体积太大。* 3. 兼容性处理的: 按需加载。 core-js*/{test: /\.js$/,exclude: /node_modules/,loader: 'babel-loader',options: {// 预设:指示babel做怎么样的兼容性处理,普通简单转换处理。// presets: [// '@babel/preset-env'// ]// 按需加载,上面注释。js中注释 importpresets: [['@babel/preset-env',{// 按需加载useBuiltIns: 'usage',// 制定 core-js的版本corejs: {version: 3},// 指定兼容性做到哪个版本的浏览器targets: {chrome: '60',firefox: '60',ie: '9',safari: '10',edge: '17'}}]]}}]},// 插件plugins: [new HtmlWebpackPlugin({template: "./src/index.html"}),],// 模式 development 开发, production 生产mode: 'development',
}