9

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.cssSCSS入力ファイルのリストです。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配置し、関連のないすべてのピースをまとめて、それを暗殺するのが最善の方法ですか?

4

5 に答える 5

7

単一のmainSass ファイルを作成し、すべてのファイルをそこにインポートして、mainnode-sass でファイルをコンパイルしてみませんか? これにより、正しいソースマップを含む単一のファイルが生成されます。

于 2015-08-27T16:04:48.517 に答える