使用babel和laravel-mix将ES6转换为ES2015

时间:2018-09-16 09:20:46

标签: laravel babeljs laravel-mix

我的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')

3 个答案:

答案 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)