Vue2.0 ES6语法降级ES5的操作
由于部分低版本的手机还不支持ES6语法,将会导致vue报错。综合了网上的各种办法,我的项目现在终于成功降级ES5.
首先安装插件
npminstall-Dbabel-preset-es2015babel-corebabel-preset-stage-2babel-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,需要安装npminstallurl-search-params-polyfill--save,然后在使用了该对象的类头部引入import'url-search-params-polyfill'
最后npmrunbuild编译。
验证是否成功
查看dist目录下编译出来的js里面是否还有const/let等ES6的语法,没有的话基本就成功了。
补充知识:vue-cli3.x组件es6转es5失败导致低版本浏览器报错
错误为UncaughtSyntaxError:Unexpectedtoken...
这个问题网上看了很多解决方式都没发实现这个组件转化成ES5
这个坑爹的组件就是vue-superslide
来看一下他入口文件的内容
//导入组件 importsuperslidefrom'./superslide' //importsuperSlidefrom"./slide"; //importSuperSlideItemfrom"./slide-item"; //存储组件列表 constcomponents=[superslide] //定义install方法,接收Vue作为参数。如果使用use注册插件,则所有的组件都将被注册 constinstall=function(Vue){ //判断是否安装 if(install.installed)return //遍历注册全局组件 components.map(component=>Vue.component(component.name,component)) } //判断是否是直接引入文件 if(typeofwindow!=='undefined'&&window.Vue){ install(window.Vue) } exportdefault{ //导出的对象必须具有install,才能被Vue.use()方法安装 install, //以下是具体的组件列表 ...components }
真的是有es6语法悲伤整个项目只有这个组件没有转义成ES5不明所以还是要解决啊我并没有放弃它
解决方式去node_modules文件夹下面找到,把它当一个静态资源引入直接放在assets目录下
原来插件的引入方式是
importVueSuperSlidefrom'vue-superslide'
Vue.use(VueSuperSlide)
现在的引入方式是
importVueSuperSlidefrom'./assets/js/vue-superslide/packages/index.js'
Vue.use(VueSuperSlide)
这简直的LOW到不行但解决问题了我忍一忍。
以上这篇Vue2.0ES6语法降级ES5的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。