我得到他下面的错误,而建设我的项目
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: 2 arguments required, but only 1 was passed.
╷
width: rem(300);
^^^^^^^^
下面是我的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"
}
}
我确信rem(300)是一个有效的语法。你能告诉我为什么构建抛出这个错误吗
3条答案
按热度按时间zkure5ic1#
今天遇到了同样的问题,我有“sass”:“^1.26.5”in my package.json.
sass昨天更新到1.65.1,你的构建应该与1.64.2 https://www.npmjs.com/package/sass/v/1.65.1?activeTab=versions一起工作我得到了这个问题,因为另一个依赖我无法控制,所以改变sass版本是现在唯一的选择。但是如果你在自己的代码中使用了rem(),那么就使用Ali Klein的答案。
mw3dktmi2#
CSS
rem()
函数需要两个参数:https://developer.mozilla.org/en-US/docs/Web/CSS/remrem()CSS函数返回第一个参数除以第二个参数后的余数,类似于JavaScript余数运算符(%)
如果你创建了一个自定义的
rem()
函数,我建议用别的名字命名,因为这样可能会有冲突。rkttyhzu3#
在将css更新到1.65.0版本后,出现了保留的计算函数。这些函数调用将被分析为sass计算而不是函数调用:round()、mod()、rem()、sin()、cos()、tan()、asin()、acos()、atan()、atan2()、pow()、sqrt()、hypot()、log()、exp()、abs()或sign()。如果没有命名空间,则不能再调用以其中任何一个命名的用户定义函数。
正如你所看到的,rem()不再是一个自定义函数。换个名字,一切都会像以前一样。
enter link description here