node-sass
コマンド ライン (実際には Makefile) から直接使用して、CSS を構築しています。
scss ファイルは異なるディレクトリにあり、相互に参照していません。私が望むのは、これらのファイルを、HTML から読み取ることができる単一の CSS 出力に sassify することです - 作業中のソース マップを使用します。
これは、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
は、単一の入力ファイルのみを使用することを主張しています。2 つ以上ある場合、2 つ目は出力として扱われ、その内容は上書きされます。
「入力ディレクトリ」と「出力ディレクトリ」にはいくつかのオプションがありますが、そのようなかなり恣意的な制限によってビルドプロセスを制約したくありません (はい、最終的には曲げます...)。
node-sass 構文 2
cat <input.scss> | node-sass [options] > output.css
これは、Unix の考え方とより一致しています。問題は 2 つあります。私の出力ファイルはサブディレクトリ ( ) にあります。これは、出力パスがわからないout/bundle.css
ため、ソース マップ参照を混乱させます。node-sass
そのためのよう--source-map-root
ですが、私はそれを働かせませんでした...
明らかに丸い穴に四角いボルトを入れてるじゃないですか。これをどのように行いますか?
ルートに1 つを単純にring.scss
配置し、関連のないすべてのピースをまとめて、それを暗殺するのが最善の方法ですか?