安装Vuetify stylus相关loader后报错options.domAPI is not a function求助
问题原因
options.domAPI is not a function报错是手动安装的高版本style-loader@3.x和项目依赖的laravel-mix@6.x内置的loader版本冲突导致。laravel-mix已经内置了适配好的css-loader、style-loader等样式处理依赖,额外安装高版本会打破依赖匹配,导致样式加载逻辑执行异常。
解决步骤
- 第一步:卸载冲突的额外依赖
执行命令:npm uninstall --save-dev stylus stylus-loader css-loader style-loader
你之前删除依赖后package.json里仍然存在上述包,说明未完成卸载,执行上面命令可以彻底清理。 - 第二步:清理本地缓存文件
删除项目根目录下的两个内容:node_modules文件夹package-lock.json锁文件
- 第三步:重新安装全部依赖
执行命令:npm install
额外说明:Vuetify全局变量修改正确方式
Vuetify 2.x版本已完全弃用stylus,改用Sass变量配置全局样式,不需要安装任何stylus相关依赖,正确配置方法如下:
- 新建自定义变量文件
resources/sass/vuetify-variables.scss,写入你需要覆盖的Vuetify变量,示例:
$primary: #1976D2; $secondary: #424242; $body-font-family: 'Microsoft Yahei', sans-serif;
- 修改项目根目录下的
webpack.mix.js配置,新增Vuetify相关配置:
mix.js('resources/js/app.js', 'public/js') .vue() .sass('resources/sass/app.scss', 'public/css') .options({ vuetify: { customVariables: ['resources/sass/vuetify-variables.scss'], treeShake: true } });
- 移除你在Vuetify初始化文件中手动引入的
vuetify/dist/vuetify.min.css,开启treeShake后会自动注入样式,重复引入会导致样式加载错误。
内容的提问来源于stack exchange,提问作者Jaeger
相关产品推荐
相关产品推荐

