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

Laravel 9中npm run dev编译Vue和Tailwind时出错求助

Laravel 9 安装Vue3+TailwindCSS编译错误:Can't resolve 'variables' 解决方案

这个错误的核心原因是你的resources/css或resources/sass目录下的编译文件中,存在对名为variables的文件的引用,但该文件路径不正确或不存在,导致webpack无法找到对应的资源。

解决步骤:

  • 检查并修正@import语句
    打开resources/css/app.css和resources/sass/app.scss,查找所有包含variables的@import语句:

    • 若app.scss中引用Sass变量文件(比如_variables.scss),确保路径正确,示例:
      // 正确写法(假设_variables.scss在同目录下)
      @import './variables';
      
    • 若app.css中错误引入了Sass变量文件,直接删除该行,因为PostCSS处理的纯CSS文件无法识别Sass变量。
  • 调整Webpack Mix配置,避免编译冲突
    你当前同时编译了CSS(PostCSS)和Sass,可能导致依赖混淆,可选择以下两种方案:
    方案1:合并编译逻辑,优先处理Sass

    // webpack.mix.js
    mix.js('resources/js/app.js', 'public/js')
        .vue()
        .sass('resources/sass/app.scss', 'public/css', [
            require('tailwindcss'),
            require('autoprefixer')
        ]);
    

    同时将app.css中的Tailwind指令移到app.scss中:

    // resources/sass/app.scss
    @import 'tailwindcss/base';
    @import 'tailwindcss/components';
    @import 'tailwindcss/utilities';
    // 你的其他Sass代码和变量
    

    方案2:保持分开编译,但确保无交叉依赖
    确认app.css和app.scss之间没有互相引用的内容,调整编译顺序:

    // webpack.mix.js
    mix.js('resources/js/app.js', 'public/js')
        .vue()
        .sass('resources/sass/app.scss', 'public/css')
        .postCss("resources/css/app.css", "public/css", [require("tailwindcss")]);
    
  • 清理编译缓存并重新构建
    删除public/css目录下的所有编译生成文件,然后执行:

    npm run dev
    

内容的提问来源于stack exchange,提问作者Fathul Amin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:01:23