node-sass - 如何在输出路径中使用通配符目录值

node-sass - How to use a wildcard directory value in output path

有没有办法让 node-sass 在其输出路径中使用变量?我正在尝试执行以下操作:

node-sass blocks/**/editor.scss -o dist/-editor.css

目标是在输出前加上其父目录的值。例如目录结构为:

blocks
├── foo
│   ├── editor.scss
├── bar
│   ├── editor.scss
└── baz
    └── editor.scss

将导致以下编译的 CSS 文件名:

dist
├── foo-editor.css
├── bar-editor.css
└── baz-editor.css

以上命令当前输出:

dist
└── -editor.css

忽略 前缀。

至少,这可以在节点中完成。

const fs = require("fs");
const sass = require("node-sass");

fs.readdirSync("blocks").forEach(dir => {
  sass.render(
    {
      file: `blocks/${dir}/editor.scss`,
      outFile: `dist/${dir}-editor.css`
    },
    (error, result) => {
      if (!error) {
        fs.writeFile(`dist/${dir}-editor.css`, result.css, error => {
          if (error) {
            console.log(err);
          } else {
            console.log(`dist/${dir}-editor.css`);
          }
        });
      }
    }
  );
});