【问题标题】:how to compile js to es5 with laravel mix?如何使用 laravel mix 将 js 编译为 es5?
【发布时间】:2026-02-06 19:45:01
【问题描述】:

我有 laravel Vue 应用程序,它与 chrome 和 firefox 完美配合。但它在 Edge 或 IE11 上不起作用,并且控制台在箭头功能上显示错误!? 如何使用 laravel mix 和 webpack 编译或转译为 es5? 你能展示一下 webpack.mix.js 的正确配置吗? tnx 很多

【问题讨论】:

    标签: laravel-5 webpack babeljs laravel-mix


    【解决方案1】:

    为了将您的 es6 代码编译为 es5,请按照以下步骤操作:

    1) 安装 babel-env 预设

    npm install @babel/preset-env --save
    

    然后在你的根目录下的.babelrc中声明:

    {
      "presets": ["@babel/preset-env"]
    }
    

    2) 使用

    编译您的代码
    npm run dev //for dev environment
    

    npm run prod // for production environment
    

    【讨论】:

    • 我已经按照你说的做了,现在我在“...this”上得到一个错误,通常在任何带有“this”关键字的地方。这让我感到沮丧。
    • 很抱歉,您到底遇到了什么错误?您能否显示问题所在代码的 sn-p?
    【解决方案2】:

    经过大量搜索,我发现这个Vuecomponent导致错误“https://github.com/godbasin/vue-select2”我如何将它编译为es5。

    边缘控制台错误: Expected identifier, string or number

    它显示的相应行是这样的:

    setOption(val = []) {
          this.select2.empty();
          this.select2.select2({
    ----->     ...this.settings,
            data: val
          });
          this.setValue(this.value);
        },
    

    抱歉耽误您的时间

    【讨论】:

      【解决方案3】:

      2020 年 2 月更新

      如果还有人需要这方面的帮助,mix 已经为 es5 提供了 babel 编译:

      mix.scripts() 的一个细微变化是 mix.babel()。它的方法 签名与脚本相同;但是,连接的文件将 接收 Babel 编译,将任何 ES2015 代码转换为 vanilla 所有浏览器都能理解的 JavaScript。

      你可以这样使用它:

      mix.babel(['public/js/es6file.js'], 'public/js/app.es5.js')
      

      DOCS

      【讨论】: