Laravel 9 Vite无法加载文件内函数,打包后文件为空
Laravel 9 + Vite 无法加载JS函数问题解决
问题根源
Vite默认采用ES模块机制,模块内部定义的函数如果没被引用或挂载到全局,会被**Tree Shaking(树摇)**优化删除,导致npm run build后生成的JS文件为空;而代码写在函数外部时,顶层代码会被直接执行,不会被树摇清理,所以显示正常。同时,模块内的函数默认不会暴露到全局window对象,Blade模板里直接调用也找不到。
解决方法
把函数挂载到全局window对象上,既避免被树摇删除,又能在模板中正常调用:
修改resources/js/dashboard/globaldash.js代码:
window.convertToLowerCase = function() { const input = document.getElementById('username'); input.value = input.value.toLowerCase(); }
验证步骤
- 执行
npm run build重新构建资源 - 检查
public/build目录下对应的JS文件,确认函数代码已存在 - 刷新页面测试函数调用,此时即可正常执行
内容的提问来源于stack exchange,提问作者Yunier Garcia
相关产品推荐
相关产品推荐

