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"
是否有一个参数我可以传递我的脚本以便这样做?我无法在文档中找到任何相关内容。
提前致谢。
看来您需要的功能并不作为 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/文件夹中有
这将执行:
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)