我node-sass
直接从命令行(真的是 Makefile)使用来构建我的 CSS。
scss 文件位于不同的目录中,它们不相互引用。我想要的是将这些文件 sassify 到一个 CSS 输出,我可以从 HTML 中读取该输出 - 使用工作源映射。
这是我在 Makefile 中的当前命令:
$(OUT_MAIN_CSS): $(SCSS) Makefile $(node-sass)
cat $(SCSS) > $(TMP_SCSS)
$(node-sass) --output-style compressed --source-map $(OUT_MAIN_CSS).map $(TMP_SCSS) $@
rm $(TMP_SCSS)
OUT_MAIN_CSS
是out/bundle.css
。SCSS
是输入文件的列表。node-sass
是node_modules/.bin/node-sass
。
我想要一个单行文件,不需要临时文件。另外,我希望我的源映射引用(用于调试)指向原始文件,而不是临时文件。
node-sass 语法 1
node-sass [options] <input.scss> [output.css]
在这里,node-sass
坚持只有一个输入文件。如果我有两个或更多,第二个被视为输出,其内容被覆盖。
“输入目录”和“输出目录”有一些选项,但我不想通过这种相当随意的限制来限制我的构建过程(是的,最终我会弯曲......)。
node-sass 语法 2
cat <input.scss> | node-sass [options] > output.css
这更符合 Unix 的心态。问题是双重的。我的输出文件位于子目录 ( out/bundle.css
) 中,这会混淆源映射引用,因为node-sass
不知道输出路径。
似乎有--source-map-root
这个,但我没有让它工作......
我显然是在这里将一个方形螺栓放在一个圆孔中,不是吗?你会怎么做?
最好的方法是简单地ring.scss
在根中添加一个,将所有不相关的部分聚集在一起,然后将其分解?