为什么我收到“需要 2 个参数,但只传递了 1 个参数”。当尝试编译我的 Sass 模板时?

use*_*933 2 javascript sass webpack sass-loader

我在构建项目时收到以下错误

SassError: 2 arguments required, but only 1 was passed.
    width: rem(300);
           ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

下面是我的 package.json

{
  "name": "test",
  "version": "3.0.0",
  "private": true,
  "scripts": {
   
  },
  "devDependencies": {
    "mini-css-extract-plugin": "^2.4.2",
    "node-sass": "^6.0.1",
    "postcss": "^8.3.9",
    "postcss-loader": "^6.2.0",
    "postcss-preset-env": "^6.7.0",
    "sass": "^1.3",
    "sass-loader": "^12.1.0"
  },
  "dependencies": {
    "grunt-sass": "^3.1.0"
  }

}
Run Code Online (Sandbox Code Playgroud)

有什么问题吗?

小智 9

今天遇到了同样的问题,我的 package.json 中有 "sass": "^1.26.5" 。

sass 昨天更新到 1.65.1,您的构建应该适用于 1.64.2 https://www.npmjs.com/package/sass/v/1.65.1?activeTab=versions 由于我有另一个依赖项,我遇到了这个问题无法控制,因此更改 sass 版本是目前唯一的选择。但如果您在自己的代码中使用了 rem(),请查看 Ali Klein 的答案。


Ali*_*ein 8

CSSrem()函数需要 2 个参数:https ://developer.mozilla.org/en-US/docs/Web/CSS/rem

rem() CSS 函数返回第一个参数除以第二个参数时剩下的余数,类似于 JavaScript 余数运算符 (%)

如果您创建了自定义rem()函数,我建议将其命名为其他名称,因为可能会发生冲突。