使用 Node-sass 缩小 CSS

Posted

技术标签:

【中文标题】使用 Node-sass 缩小 CSS【英文标题】:Minify CSS with Node-sass 【发布时间】:2017-03-27 12:49:51 【问题描述】:

我在我的 NodeJS 项目中使用 SCSS,并让我的脚本使用以下命令将我所有单独的 SCSS 文件转换为单个 CSS 文件

node-sass -w public/css/scss/style.scss public/css/style.css

我唯一的问题是我还希望缩小 CSS 文件。这可能与 Node-sass 吗?文档说有一个“紧凑”选项,但是当我尝试时它似乎不起作用

node-sass -w compact public/css/scss/style.scss public/css/style.css

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

由于 LibSass 和 Node Sass are deprecated使用 Dart-SASS 包:npm install --save-dev sass

package.json


  "scripts": 
    "scss": "sass --style=compressed --watch src/scss:public/css"
  ,
  "devDependencies": 
    "sass": "^1.32.7"
  

要运行它并查看文件更改,请在终端中运行:

npm run scss 

给定一个文件夹结构,如:

?︎ package.json?︎ public?︎ css?︎ style.css缩小和压缩?︎ src?︎ scss?︎ style.scss

【讨论】:

【参考方案2】:

"scss": "node-sass --watch scss -o app/css"这对我有用

【讨论】:

虽然可以编译,但不幸的是它不会“缩小”。为此,您将需要使用 --output-style compressed 标志【参考方案3】:

node-sass 支持使用 --output-style 参数输出缩小的 CSS。

输出样式

类型:字符串 默认:nested 值:nestedexpandedcompactcompressed

安装 node-sass npm 包后。我在 package.json 文件中添加了 build-css 行。

  "scripts": 
    "build-css": "node-sass --include-path scss scss/main.scss   public/css/main.css --output-style compressed",
  ,

然后我只需键入 npm run build-css 即可将 /scss/main.scss 文件中的内容转换为 /public/css/main.min.css 中的压缩(缩小)css

更多信息可以在 node-sass Github repo 的文档中找到https://github.com/sass/node-sass#outputstyle

【讨论】:

【参考方案4】:

在node-sass documentation中说你要使用 --output-style,也可以是nested | expanded | compact | compressed。缩小使用compressed

例如:

node-sass -w public/css/scss/style.scss public/css/style.css --output-style compressed

将缩小 CSS。

【讨论】:

node-sass 现已弃用。尽管这在 2016 年是正确的,但还是建议使用 Roko C. Buljan 回答的 Dart-SASS 包。 @dasper 不确定 node-sass 是否也被弃用,也许它很快就会使用 Dart Sass? @Timo in github.com/sass/node-sass 明确将此警告放在首位:警告:LibSass 和 Node Sass 已弃用。虽然他们将继续无限期地接收维护版本,但没有计划添加额外的功能或与任何新的 CSS 或 Sass 功能兼容。仍在使用它的项目应该转移到 Dart Sass。

以上是关于使用 Node-sass 缩小 CSS的主要内容,如果未能解决你的问题,请参考以下文章

node-sass和dart-sass区别(以及解决M1芯片/arm芯片无法使用node-sass的问题)

Node-sass / sass-loader 替代方案

Node-sass 不在 npm 脚本中使用管道

在 sass 函数中使用 css 变量 - node-sass

更新 NodeJS 后使用 node-sass 的问题

在 nodejs 中使用 node-sass 时找不到 libsass 绑定