0


プロジェクトのSASSおよびSCSS文字列をCSS文字列 にコンパイルする必要があります。したがって、ノード パッケージ node-sass を使用しています。SCSS の変換はうまくいきますが、SASS はうまくいきません。

SASS のコード例:

'use strict';

var sass = require('node-sass');

var dataTemp = 'body{background:blue; a{color:black;}}';

var output = sass.renderSync({
  data: dataTemp
});

console.log(output.css.toString());

このようなものを変換しようとすると、問題が発生します。これは、有効な .sass 構文である必要があります

'use strict';

var sass = require('node-sass');

var dataTemp = '.red\n color: red';

var output = sass.renderSync({
  data: dataTemp
});

console.log(output.css.toString());

コンソール出力:

Error: Invalid CSS after ".": expected 1 selector or at-rule, was ".red color: red "

したがって、明らかに node-sass は .sass コードをそのようにコンパイルできません。node-sass の構文は次のとおりです。

var result = sass.renderSync({
  data: scss_content
  [, options..]
});

オブジェクト内では、オプションや関数を定義できます。そのような関数でデータをコンパイルする方法はありますか?

他のパッケージの他のソリューションまたは推奨事項はありますか?

4

2 に答える 2

5

「indentedSyntax」という名前のオプションを追加して「true」に設定すると、node-sass は .sass コードもコンパイルできます。申し訳ありませんが、ドキュメントをもっと正確に読むべきでした。助けてくれてありがとう!

'use strict';

var sass = require('node-sass');

var dataTemp = '.red\n color: red';

var output = sass.renderSync({
  data: dataTemp,
  indentedSyntax: true,
  outputStyle : 'compressed'
});

console.log(output.css.toString());

ログ: ".red{color:red}"

于 2016-05-04T12:53:53.200 に答える
2

あなたの SCSS は無効です -{}あなたのプロパティを提供する必要があります:

'use strict';

var sass = require('node-sass');

var dataTemp = '.red {color: red}';

var output = sass.renderSync({
  data: dataTemp
});

console.log(output.css.toString());

SassMeisterなどのオンライン ツールを使用して、SASS/SCSS を検証できます。

于 2016-04-27T13:54:42.000 に答える