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

执行npm run watch时出现NPM错误:scss参数1配置异常求助

解决Laravel Mix执行npm run watch时的assert.js错误

嘿,我碰到过类似的问题,这大概率是你在webpack.mix.js里给scss()方法传的参数格式不对导致的。咱们来一步步搞定它:

问题根源

Laravel Mix的scss()方法对第一个参数的格式有要求——它没法直接识别你传的那种未正确配置的文件列表,内部的断言检查过不去,就炸出了assert.js里的错误。

两种可行的解决办法

方法1:用主入口文件统一导入(推荐)

这是Mix官方更推荐的方式,后续维护也方便:

  1. 在resources/sass下面建一个主文件,比如app.scss
  2. 把所有需要的SCSS文件都导入到这个主文件里:
// app.scss
@import './components/button.scss';
@import './layouts/header.scss';
// 把你要用的其他SCSS文件都加在这儿
  1. 然后在webpack.mix.js里只指定这个主入口就行:
mix.scss('resources/sass/app.scss', 'public/css');

方法2:正确传入多文件数组

如果你非得直接传多个文件,得保证路径没问题,而且用Mix支持的格式:
要是想把多个文件合并成一个CSS文件,这么写:

mix.sass([
    'resources/sass/file1.scss',
    'resources/sass/file2.scss'
], 'public/css/combined.css');

要是想每个文件单独编译成对应的CSS,就链式调用:

mix.scss('resources/sass/file1.scss', 'public/css')
   .scss('resources/sass/file2.scss', 'public/css');

额外排查小技巧

要是上面的方法还没解决,试试这几步:

  • 清一下Mix的缓存:跑npm run clear,或者手动删掉node_modules/.cache文件夹
  • 重装依赖:先删了node_modules和package-lock.json,再跑npm install
  • 检查版本兼容性:确保你的Laravel Mix版本和Laravel项目版本匹配(比如Laravel 8对应Mix 6.x,Laravel 9及以上用Mix 6.x或更高版本)

内容的提问来源于stack exchange,提问作者Ricardo Villagrana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:23:26