Module build failed: TypeError: this.getOptions is not a function报错解决方案

自己搭建vue时候,遇到了Module build failed: TypeError: this.getOptions is not a function的报错,根据网上搜索的结果,原因应该是node-sass的版本与sass-loader的版本不匹配。记录一下解决的过程。


1. 先看一下报错信息

终端报错信息

2.查看自己安装的node的版本

ctrl+R,输入cmd打开终端,输入以下指令

node -v

node版本
我自己的node版本是14.17.4,要根据安装的node版本去安装相应的node-sass版本。

3.node与node-sass对应版本

官方网站给出了版本对应的表格:https://www.npmjs.com/package/node-sass
懒得点进官网的可以直接看下面的表格:

NodeJs版本支持的node-sass版本
Node177.0+
Node166.0+
Node155.0+, <7.0
Node144.14+
Node134.13+, <5.0
Node124.12+
Node114.10+, <5.0
Node104.9+, <6.0
Node84.5.3+, <5.0
Node<8<5.0

可以看到node14对应的版本是4.14+的版本号,所以直接执行以下指令:

npm i node-sass@4.14 --save
4.对应的sass-loader版本号

安装完之后报错还是没有解决,这里还需要安装对应版本的sass-loader,在网上看到了一些,整理一下。

node-sass版本sass-loader版本
4.3.04.1.1
4.7.27.0.3
4.7.27.3.1
4.14.17.3.1
6.0.110.0.1

鉴于我自己安装的4.14版本的node-sass,所以安装了对应的7.3.1版本的sass-loader,执行以下指令安装

npm i sass-loader@7.3.1 --save
5.总结

总结一下大概就是要安装跟node版本匹配的node-sass 和sass-loader,如果使用的都是最新版本,直接执行以下指令即可

npm insatall node-sass sass-loader --save
或
npm insatall node-sass sass-loader --save-dev

这里的–save-dev和–save的区别只是下载到package.json里的devDependencies或dependencies,两者区别在于前者是在本地环境用到的依赖,后者是在开发环境需要用到的依赖,只在本地开发的话–save-dev即可。

如果有不准确的地方,望批评指正~

  • 21
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值