使用 node-sass 查看整个目录时指定输出文件名

dan*_*Mad 9 css sass npm node-sass

目前,我可以在查看单个 SCSS 文件时指定文件名,在 package.json 文件中使用 node-sass build 命令:

"sass-build": "node-sass src/scss/main.scss dist/css/main.min.css --output-style compressed"

但是,我需要查看整个目录,因为我正在构建多个文件。是否可以使用 node-sass 查看整个目录并操作单个文件的名称?

我需要更改以下文件名:

main.scss --> main.min.css

other.scss --> other.min.css

这些文件位于同一目录中,因此我的构建脚本现在如下所示:

"sass-build": "node-sass src/scss -o dist/css --output-style compressed"

是否有一个参数我可以传递我的脚本以便这样做?我无法在文档中找到任何相关内容。

提前致谢。

lyd*_*i59 5

看来您需要的功能并不作为 node-sass cli 的内置功能存在。

假设您使用 bash,这可能对您有用。

find src/scss -name '*.scss' -exec sh -c 'node-sass $0 dist/css/$(basename $0 .scss).min.css --output-style compressed' {} \;

它是如何工作的

该脚本的作用是获取文件夹树中每个文件的相对路径,其文件名与模式“*.scss”匹配,并针对文件上的每个路径专门执行 node-sass 命令,通过删除'.scss' 初始扩展名,然后根据需要将其替换为 '.min.css' 扩展名。

例如,假设您的src/scss/文件夹中有

  • myfile1.scss
  • 子文件夹/
    • myfile2.scss

这将执行:

node-sass src/scss/myfile1.scss dist/css/myfile1.min.css --output-style compressed 
node-sass src/scss/subfolder/myfile2.scss dist/css/myfile2.min.css --output-style compressed 
Run Code Online (Sandbox Code Playgroud)

选修的

您可以将此脚本放入文件中./bin/scss-watcher.sh,使其可执行并直接调用它来包装逻辑。

"sass-build" : "./bin/scss-watcher.sh"
Run Code Online (Sandbox Code Playgroud)