[英]create-react-app build removing css min function
我在通过create-react-app
的 React 应用程序的SCSS
文件中有以下内容:
div.letterCaret {
content: "";
display: block;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
border: css-min(10px, 1.3vh) solid transparent;
width: 10px;
height: 10px;
border-top-color: inherit;
}
div.stringUnderscore {
height: css-clamp(0.3rem, 15%, 1rem);
border: $underScoreBorderWidth solid;
border-top: none;
position: absolute;
left: 50%;
transform: translateX(-50%);
transition: left 400ms $easeOutCirc, width 400ms $easeOutCirc, border-color 400ms $easeOutCirc;
}
当我运行 npm run build 时,它编译为:
div.letterCaret {
content: "";
display: block;
top: 0;
border: solid transparent;
width: 10px;
height: 10px;
border-top-color: inherit
}
div.letterCaret, div.stringUnderscore {
position: absolute;
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%)
}
div.stringUnderscore {
height: clamp(.3rem, 15%, 1rem);
border: .2rem solid;
border-top: none;
transition: left .4s cubic-bezier(0, .55, .45, 1), width .4s cubic-bezier(0, .55, .45, 1), border-color .4s cubic-bezier(0, .55, .45, 1)
}
在 div.letterCaret border: css-min(10px, 1.3vh) solid transparent;
变成border: solid transparent;
. 这只发生在构建中,而不是npm run start
(即开发)中,它可以正常工作。 尽管显式调用了 css 函数,但我似乎无法修复它,我做错了什么?
尝试过的其他解决方案:
index.html
头部调用的overrides.css
文件; 这有效,但感觉很糟糕,我想知道为什么上述内容无法理解如何正确修复它scss
文件之后直接将overrides.css
导入index.js
,但它被忽略如果您想使用create-react-app
并使用SCSS
那么您可以通过键入以下内容来安装node-sass
库:
npm install node-sass --save
有关如何一起使用node-sass
和create-react-app
的完整说明,请参阅“如何在创建 React 应用程序中使用 SASS?”: https : //www.robinwieruch.de/create-react-app-with-sass -支持
您也可以在此处查看create-react-app
的官方文档: https : //create-react-app.dev/docs/adding-a-sass-stylesheet/
经过大量挖掘,我认为这是使用过时版本的cssnano
的react-scripts
包的问题,这导致了该问题,此后已在版本 5+ 中解决,但react-scripts
使用 4.11.1。
为了解决这个问题,我已经改用sass
来编译 css 并将其直接链接到index.html
,这并不是一个真正的解决方案,更多的是用不同的方式来做,但我对npm
理解不够好,无法更新嵌套的依赖项(我试过一切都坏了)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.