我的Vue组件中有ES6 JavaScript代码。为了支持IE 11,我需要使用babel和laravel-mix将其转换为ES5代码。我该怎么办?
这是我的webpack.mix.js文件。
let mix = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js')
.js('resources/assets/js/admin-app.js', 'public/js')
答案 0 :(得分:5)
有一个mix.babel()
命令可以处理此问题。
与mix.scripts()
相同,因此需要更多的腿部动作。我作弊,然后将es5.js提供给IE:
mix.js('resources/assets/js/app.js', 'public/js')
.babel('public/js/app.js', 'public/js/app.es5.js')
.sass('resources/assets/sass/app.scss', 'public/css');
答案 1 :(得分:1)
代码不是100%正确:babel第一个参数应为数组:
mix.js('resources/assets/js/app.js', 'public/js')
.babel(['public/js/app.js'], 'public/js/app.es5.js')
.sass('resources/assets/sass/app.scss', 'public/css');
答案 2 :(得分:1)
我希望保留app.js
作为我的最终js输出。这是首选的命名约定。
因此,就像其他所有人一样,如果babel为您工作,那么
webpack.confog.js
mix.js('resources/assets/js/app.js', 'public/js/app1.js')
.babel('public/js/app1.js', 'public/js/app.js')
.sass('resources/assets/sass/app.scss', 'public/css');
通过此操作,我仍然维护public/js
和整个应用程序的入口点。
但是我更喜欢使用我在这里发布的解决方案: Laravel Mix: Configure Babel for IE11 compatibility (transformations and polyfills)