You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Laravel Mix将const、let关键字转换为var?

解决方案
  • 移除webpack.mix.js中自定义的babel-loader规则
    Laravel Mix 6内置了对JS文件的Babel处理逻辑,你额外在mix.webpackConfig中添加的babel-loader规则优先级低于默认规则,不会生效还会产生冲突,直接删除这部分自定义配置即可。
  • 使用官方mix.babelConfig方法配置Babel
    用Mix提供的专用Babel配置方法可以正确覆盖默认配置,核心是给@babel/preset-env添加modules: false参数,禁止转换ES模块语法,即可阻止const/let被转为var,修改后的配置如下:
const mix = require("laravel-mix");

mix.babelConfig({
  presets: [
    [
      "@babel/preset-env",
      {
        targets: "defaults, not ie 11, not ie_mob 11",
        modules: false
      }
    ]
  ],
  plugins: ["@babel/plugin-proposal-class-properties"]
});

mix
  .js("./app.js", "./assets/js")
  .postCss("./app.css", "./assets/css", [
    require("tailwindcss"),
    require("autoprefixer"),
  ]);
  • 修正browserslist配置(可选)
    你当前package.json中的browserslist是单字符串放在数组中,可能存在解析错误,建议调整为单规则数组格式:
"browserslist": [
  "defaults",
  "not ie 11",
  "not ie_mob 11"
]
  • 清理缓存重新编译
    修改Babel配置后需要清理编译缓存,避免旧缓存导致配置不生效,运行以下命令重新编译即可:
    npx mix clean && npx mix

内容的提问来源于stack exchange,提问作者Ali Ragab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:45:04