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我自己的n
自己搭建vue时候,遇到了Module build failed: TypeError: this.getOptions is not a function的报错,根据网上搜索的结果,原因应该是node-sass的版本与sass-loader的版本不匹配。记录一下解决的过程。
1. 先看一下报错信息
2.查看自己安装的node的版本
ctrl+R,输入cmd打开终端,输入以下指令
node -v
我自己的node版本是14.17.4,要根据安装的node版本去安装相应的node-sass版本。
3.node与node-sass对应版本
官方网站给出了版本对应的表格:https://www.npmjs.com/package/node-sass
懒得点进官网的可以直接看下面的表格:
NodeJs版本 | 支持的node-sass版本 |
---|---|
Node17 | 7.0+ |
Node16 | 6.0+ |
Node15 | 5.0+, <7.0 |
Node14 | 4.14+ |
Node13 | 4.13+, <5.0 |
Node12 | 4.12+ |
Node11 | 4.10+, <5.0 |
Node10 | 4.9+, <6.0 |
Node8 | 4.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.0 | 4.1.1 |
4.7.2 | 7.0.3 |
4.7.2 | 7.3.1 |
4.14.1 | 7.3.1 |
6.0.1 | 10.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即可。
如果有不准确的地方,望批评指正~
更多推荐
所有评论(0)