我们有一个vue-cli 3项目。它运行良好,编译也没有问题。
事实上,我们必须支持仅支持ES5代码的旧浏览器。
在该项目中,我们集成了一些以ES6编写的外部库(例如“reconnecting-websocket”)。
问题是
在将这些外部代码与我们的项目一起编译后,vue-cli生成的代码是ES6代码。
例如,我们的“chunk-vendors.js”文件包含以下代码:
似乎vue CLI可以适当地将应用程序代码转换为ES5。但它没有对供应商进行另一次处理。
是否有办法配置vue项目,使用CLI v3,在构建后进行最终的转码以确保所有文件都是ES5兼容的?
我们认为嵌入的babel和webpack会自动完成这项工作,但事实并非如此。
我们尝试在vue.config.js中使用transpileDependencies选项,但它没有改变任何内容,厚箭头仍然存在于vendor块中。
事实上,我们必须支持仅支持ES5代码的旧浏览器。
在该项目中,我们集成了一些以ES6编写的外部库(例如“reconnecting-websocket”)。
问题是
在将这些外部代码与我们的项目一起编译后,vue-cli生成的代码是ES6代码。
例如,我们的“chunk-vendors.js”文件包含以下代码:
/*!
* Reconnecting WebSocket
* by Pedro Ladaria <pedro.ladaria@gmail.com>
* https://github.com/pladaria/reconnecting-websocket
* License MIT
*/const o=()=>{if("undefined"!==typeof WebSocket)return
WebSocket},a=t=>"function"===typeof t&&
使用ES6的胖箭头函数const o=()=>{
。在旧浏览器中运行此代码会出错。
这是我们的.browserlistrc
文件,似乎是在Vue CLI 3中添加浏览器支持的推荐方法:
> 1%
last 2 versions
not ie <= 8
Android >= 4
似乎vue CLI可以适当地将应用程序代码转换为ES5。但它没有对供应商进行另一次处理。
是否有办法配置vue项目,使用CLI v3,在构建后进行最终的转码以确保所有文件都是ES5兼容的?
我们认为嵌入的babel和webpack会自动完成这项工作,但事实并非如此。
我们尝试在vue.config.js中使用transpileDependencies选项,但它没有改变任何内容,厚箭头仍然存在于vendor块中。
webpack.base.config.js
的文件,其中你可以定义webpack模块。所以有这个规则:test: /\.(js|vue)$/, include: [resolve('src'), resolve('test')]
,通常人们会把node_modules
放在里面。但是这样转义会变得非常慢。我想知道现在这是如何工作的 :) - Andrey Popov.babelrc
更改为babel.config.js
。 - whbb