首页 > 语言 > JavaScript > 正文

Vue+webpack+Element 兼容问题总结(小结)

2024-05-06 15:31:32
字体:
来源:转载
供稿:网友

项目中用到了Vue.js和Elenment-UI

Vue官方文档中给出明确范围:Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的浏览器。

而且Element-UI支持IE10+及大多数浏览器。由此要用到Babel,主要用于将ECMAScript 2015+代码转换为旧浏览器或环境中向后兼容的JavaScript版本。在此之前,需要先搞清楚IE6~11是否支持es5:

IE6~IE8:不支持es5的所有语法; IE9:支持除ECMAScript 5 Strict Mode外的es5语法; IE10:支持es5的所有语法; IEÏ11:支持es5所有语法及es6中const和Typed Arrays新语法

babel可以把同种语言的高版本规则翻译成低版本规则,其转译过程也分为三个阶段:parsing、transforming、generating。(1)解析步骤接收代码并输出 AST(抽象语法树),这其中又包含两个阶段词法分析和语法分析。词法分析阶段把字符串形式的代码转换为令牌(tokens)流。语法分析阶段会把一个令牌流转换成 AST 的形式,方便后续操作。(2) 利用我们配置好的plugins/presets把Parser生成的AST转变为新的AST。(3)代码生成步骤过程是深度优先遍历整个 AST,然后构建可以表示转换后代码的字符串。

下面总结Babel的使用:

1、由于项目使用了webpack打包工具,安装

npm install --save-dev babel-loader babel-core

2、在webpack.config.js中设置

module: {  rules: [   {    test: //.js$/,    loader: "babel-loader",    include: [     resolve("src"),     resolve("test"),    ],   },Ï  ]}

可以根据webpack中Module的选项来配置相应内容

3、在根目录下创建.babelrc文件来添加插件,文件添加成功后,可以开始配置内容

首先,可以使用evn预设置,它支持ES2015+的转换

npm install babel-preset-env --save-dev

在.babelrc文件中

{"presets":["evn"]}

如果没有任何配置选项,babel-preset-env的行为与babel-preset-latest(或babel-preset-es2015、babel-preset-es2016和babel-preset-es2017一起)完全相同。

当然,还有可选的选项可以配置,例如:

  [   "env",   {    "modules": false,    "targets": {     "browsers": ["> 1%", "last 2 versions"]    }   }   "stage-2"  ],

evn中设置项所代表的意思:

targets.node 支持到哪个版本的 node targets.browsers 支持到哪个版本的浏览器 loose 启动宽松模式,配合 webpack 的 loader 使用 modules 使用何种模块加载机制 debug 开启调试模式 include 包含哪些文件 exclude 排除哪些文件 useBuiltIns 是否对 babel-polyfill 进行分解,只引入所需的部分

targets.browsers是参考browserslist https://github.com/browserslist/browserslist设置浏览器条件。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选