时间:2021-05-26
由于部分低版本的手机还不支持ES6语法,将会导致vue报错。综合了网上的各种办法,我的项目现在终于成功降级ES5.
首先安装插件
npm install -D babel-preset-es2015 babel-core babel-preset-stage-2 babel-loader
编辑配置文件
编辑/build/webpack.base.conf.js
编辑entry节点,变成如下
entry: { app: ['babel-polyfill', './src/main.js']}替换module.rules数组中的
{ test: /\.js$/, loader: 'babel-loader', include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] }为
{ test: /\.js$/, exclude: /node_modules/, // 处理除了nodde_modules里的js文件 loader: 'babel-loader'}再根目录新建.babelrc内容为
{ "presets": [ "es2015", "stage-2" ], "plugins": [ ]}如果使用了URLSearchParams,需要安装npm install url-search-params-polyfill --save,然后在使用了该对象的类头部引入import 'url-search-params-polyfill'
最后npm run build 编译。
验证是否成功
查看dist目录下编译出来的js里面是否还有const/let等ES6的语法,没有的话基本就成功了。
补充知识:vue-cli3.x 组件es6 转es5 失败 导致低版本浏览器报错
错误为 Uncaught SyntaxError: Unexpected token ...
这个问题网上看了很多解决方式 都没发实现这个组件转化成ES5
这个坑爹的组件就是 vue-superslide
来看一下他入口文件的内容
// 导入组件import superslide from './superslide'// import superSlide from "./slide";// import SuperSlideItem from "./slide-item"; // 存储组件列表const components = [superslide] // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册const install = function(Vue) { // 判断是否安装 if (install.installed) return // 遍历注册全局组件 components.map(component => Vue.component(component.name, component))} // 判断是否是直接引入文件if (typeof window !== 'undefined' && window.Vue) { install(window.Vue)} export default { // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 install, // 以下是具体的组件列表 ...components}真的是有es6语法 悲伤 整个项目只有这个组件没有转义成ES5 不明所以 还是要解决啊 我并没有放弃它
解决方式去node_modules文件夹下面找到,把它当一个静态资源引入直接放在assets目录下
原来插件的引入方式是
import VueSuperSlide from 'vue-superslide'
Vue.use(VueSuperSlide)
现在的引入方式是
import VueSuperSlide from './assets/js/vue-superslide/packages/index.js'
Vue.use(VueSuperSlide)
这简直的 LOW 到不行 但解决问题了 我忍一忍。
以上这篇Vue2.0 ES6语法降级ES5的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
其实es6的面向对象很多原理和机制还是ES5的,只不过把语法改成类似php和java老牌后端语言中的面向对象语法.一、用es6封装一个基本的类classPers
本文实例讲述了ES6对象操作。分享给大家供大家参考,具体如下:1.对象赋值es5中的对象赋值方式如下:letname="小明";letskill='es6开发'
本文实例讲述了ES6中异步对象Promise用法。分享给大家供大家参考,具体如下:回忆一下ES5中的怎么使用异步方法//es5中的异步回调letajax=fun
以下代码涉及Vue2.0及ES6语法。目标纯javascrpit实现,兼容ie9及以上浏览器,在本地做好文件格式、长宽、大小的检测,减少浏览器交互。现实是残酷的
简介ES6,全称ECMAScript6.0,是JavaScript的下一个版本标准,2015.06发版。ES6主要是为了解决ES5的先天不足,比如JavaScr