类型错误:this.getOptions 不是函数

Jul*_*tte 216 webpack vue.js sass-loader

我在安装Bootstrap时遇到了一个奇怪的错误。错误如下。我尝试卸载less-loader并安装less-loader@5.0.0,因为我在网上看到它,但它没有任何作用。我不确定在这一步要做什么。

语法错误:TypeError:this.getOptions 不是函数

 @ ./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader-v16/dist/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader-v16/dist??ref--0-1!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss 4:14-419 14:3-18:5 15:22-427
 @ ./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss
 @ ./src/App.vue
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://192.168.1.182:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js
Run Code Online (Sandbox Code Playgroud)

小智 486

与@KostDM 所说的类似,就我而言,它似乎sass-loader@11.0.0不适用于vue@2.6.12.

我安装了sass-loader@10.1.1它,它再次像魅力一样工作。

在您的package.json

"sass-loader": "^10",
Run Code Online (Sandbox Code Playgroud)

  • v11 不适用于 Vue,因为 v11 需要 Webpack v5 -> https://github.com/webpack-contrib/sass-loader/releases/tag/v11.0.0 (68认同)
  • 仍然不适合我,我正在使用 vue 3 (8认同)
  • [Stack Overflow 上复制最多的纯文本答案](https://stackoverflow.blog/2021/04/19/how-often-do-people-actually-copy-and-paste-from-stack-overflow-now -我们知道/)(无代码)... (4认同)
  • 命令 `npm i sass-loader@^10 -D` (4认同)
  • @TiletiSaiTejaReddy 只需尝试通过将 package.json 中的版本更改为 10.1.1 来降级您的 sass-loader 并运行 npm install 。再次尝试重新启动服务器。为我工作。 (2认同)

ita*_*ode 65

我通过将 sass-loader 降级到 10.1.1解决了同样的问题。我正在使用包含 webpack@4.46.0 的 @vue/cli 4.5.8。

从 sass-loader 的 v11.0.0 和 less-loader 的 v8.0.0 开始,

最低支持的 webpack 版本是 5

  • 感谢您的提示,帮助我解决了 Storybook 和 Next.js 的问题。 (3认同)

Dan*_*rdt 27

对我来说,它有助于降级 postcss-loader

+ "postcss-loader": "^4.2.0",
- "postcss-loader": "^5.0.0",
Run Code Online (Sandbox Code Playgroud)


หมู*_*per 24

昨天升级sass-loader到最新版本后发现问题。

如果使用纱线,您可以降级 sass-loader。使用 yarn add sass-loader@^10.1.1就可以了。


Dru*_*Dog 24

我在使用 css-loader v6 时遇到了同样的问题。降级到 v5 似乎有效:

"css-loader": "^5.1.1"
Run Code Online (Sandbox Code Playgroud)


Fre*_*e09 15

将 sass-loader 降级到 ^10.0.0 对我有用,但是在新的Nuxt.js CLI 应用程序上,我还必须安装 Sass:

npm i sass
Run Code Online (Sandbox Code Playgroud)

要降级,您可以删除node_modules文件夹并添加,在终端中运行:

npm i sass-loader@10 
Run Code Online (Sandbox Code Playgroud)

这将安装最新的 10 版本的 sass-loader。

毕竟,再次安装所有依赖项:

npm i
Run Code Online (Sandbox Code Playgroud)


小智 11

style-loader v3 也放弃了对 Webpack 4 的支持。

您的package.json条目应如下所示:

"style-loader": "^2.0.0"


小智 9

这对我来说解决了,对于Sass 的类似问题:

  1. 在 devDependencies 中添加到 package.json: "sass-loader": "7.3.1",
  2. npm i -D sass 或者 yarn add sass --dev
  3. 删除 node_modules
  4. npm installyarn取决于您的包管理器

我的配置:

  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "sass": "^1.32.6",
    "sass-loader": "7.3.1",
    "vue-template-compiler": "^2.6.11"
  },
Run Code Online (Sandbox Code Playgroud)

  • npm install 还不够吗? (2认同)

小智 8

yarn remove sass-loader

然后专门安装版本 10 作为yarn add sass-loader@10. 这完全解决了这个问题"vue": "~2.6.12",