警告: Node Sass はサポート終了になりました。セキュリティ修正であっても、これ以上リリースされることはありません。まだそれを使用しているプロジェクトは Dart Sass に移行する必要があります。
サポートされている Node.js バージョンはリリースによって異なります。リリース ページを参照してください。
https://github.com/nodejs/Release でサポートが終了したノードのバージョンは、node-sass リリース (メジャー、マイナー) ごとにサポートから削除されます。
サポートされていないリリースのバイナリのビルドや依存関係の互換性の破損のテストは停止しますが、サポートを希望するリリースのインストールをブロックすることはありません。
新しいノードのリリースには、CI プロバイダー (AppVeyor、GitHub Actions) からのサポートに加えて、小さな内部変更が必要です。利害関係者が購読できる単一の号を公開し、追加の号をクローズします。
以下は、node-sass のサポートされる最小バージョンと最大バージョンのクイック ガイドです。
| NodeJS | サポートされているノード Sass バージョン | ノードモジュール |
|---|---|---|
| ノード20 | 9.0+ | 115 |
| ノード19 | 8.0+ | 111 |
| ノード18 | 8.0+ | 108 |
| ノード17 | 7.0+、<8.0 | 102 |
| ノード16 | 6.0以上 | 93 |
| ノード15 | 5.0+、<7.0 | 88 |
| ノード14 | 4.14+、<9.0 | 83 |
| ノード13 | 4.13+、<5.0 | 79 |
| ノード12 | 4.12+、<8.0 | 72 |
| ノード11 | 4.10+、<5.0 | 67 |
| ノード10 | 4.9+、<6.0 | 64 |
| ノード8 | 4.5.3+、<5.0 | 57 |
| ノード <8 | <5.0 | <57 |
これにより、接続ミドルウェアを介して、驚くべき速度で自動的に .scss ファイルを CSS にネイティブにコンパイルできます。
npm で見つけてください: https://www.npmjs.com/package/node-sass
リリースの最新情報については、Twitter で @nodesass をフォローしてください: https://twitter.com/nodesass
npm インストール ノード-sass
一部のユーザーは、 node別のパッケージに登録されているために Ubuntu にインストールする際の問題を報告しています。 #!/usr/bin/env node正しく解決されるように、公式 NodeJS ドキュメントに従って NodeJS をインストールします。
Windows マシンでコンパイルするには、node-gyp の前提条件が必要です。
次のエラーが表示されますか?トラブルシューティング ガイドをご覧ください。**
SyntaxError: Use of const in strict mode.
インストールに問題がありますか?トラブルシューティング ガイドをご覧ください。
npm install -g Mirror-config-china --registry=https://registry.npmmirror.com npm インストール ノード-sass
var sass = require('node-sass');sass.render({
ファイル: scss_ファイル名、
[, options..]}, function(err, result) { /*...*/ });// ORvar result = sass.renderSync({
データ: scss_content
[、オプション..]});タイプ: String
デフォルト: null
特殊: fileまたはdataを指定する必要があります
LibSass がコンパイルするファイルへのパス。
タイプ: String
デフォルト: null
特殊: fileまたはdataを指定する必要があります
コンパイルのために LibSass に渡す文字列。 @importディレクティブを使用するときに LibSass がファイルを検索できるように、これとincludePaths組み合わせて使用することをお勧めします。
これは実験的な LibSass 機能です。慎重に使用してください。
タイプ: Function | Function[]署名function(url, prev, done)
デフォルト: undefined
関数のパラメータと情報:
url (String) - LibSass が検出した import as-is内のパス
prev (String) - 以前に解決されたパス
done (Function) - 非同期完了時に呼び出すコールバック関数。次の内容を含むオブジェクト リテラルを受け取ります。
file (String) - LibSass が使用する代替パスOR
contents (String) - インポートされたコンテンツ (たとえば、メモリまたはファイル システムから読み取られたもの)
LibSass が@importディレクティブに遭遇したときに処理します。カスタム インポーターを使用すると、同期および非同期の両方の方法で LibSass エンジンを拡張できます。どちらの場合も、目標はオブジェクト リテラルを使用してreturnか、 done()を呼び出すことです。オブジェクト リテラルの値に応じて、2 つのうちのいずれかが起こります。
{ file: "String" }を指定してdone()を返すか呼び出すと、 @importには新しいファイル パスが想定されます。相対パス解決が必要な場合には、 prevの値に注意することをお勧めします。
{ contents: "String" }を指定してdone()を返すか呼び出すと、文字列値はファイルが外部ソースを通じて読み込まれたかのように使用されます。
v3.0.0 以降:
this sass.renderまたはsass.renderSyncを即時に実行するためのコンテキスト スコープを指します。
インポーターはエラーを返すことができ、LibSass はそれに応じてそのエラーを出力します。例えば:
Done(new Error('doesn'texist!'));// または return synchronouslyreturn new Error('nothing to do here'); importer には関数の配列を指定できます。これらの関数は、配列内の出現順に LibSass によって呼び出されます。これは、ユーザーが特定の種類のパス (ファイルシステム、http) に特別なインポーターを指定するのに役立ちます。インポーターが特定のパスを処理したくない場合は、 nullを返す必要があります。 Sass タイプの詳細については、関数セクションを参照してください。
これは実験的な LibSass 機能です。慎重に使用してください。
functions 、コンパイル中の Sass ファイルによって呼び出されるカスタム関数のコレクションを保持するObjectです。これらは 0 個以上の入力パラメータを取ることができ、同期 ( return ...; ) または非同期 ( done(); ) のいずれかで値を返す必要があります。これらのパラメーターはrequire('node-sass').typesハッシュに含まれるコンストラクターの 1 つのインスタンスになります。戻り値もこれらの型のいずれかである必要があります。以下の利用可能なタイプのリストを参照してください。
getValue() / setValue(value) : 数値の数値部分を取得/設定します
getUnit() / setUnit(unit) : 数値の単位部分を取得/設定します
getValue() / setValue(value) : 囲まれた文字列を取得または設定します
getR() / setR(value) : 赤のコンポーネント ( 0 ~ 255の整数)
getG() / setG(value) : 緑のコンポーネント ( 0 ~ 255の整数)
getB() / setB(value) : 青色のコンポーネント ( 0 ~ 255の整数)
getA() / setA(value) : アルファ成分 ( 0から1.0までの数値)
例:
var Color = require('node-sass').types.Color,
c1 = 新しいカラー(255, 0, 0)、
c2 = 新しいカラー(0xff0088cc); getValue() : 囲まれたブール値を取得します
types.Boolean.TRUE : 「true」を保持するtypes.Booleanのシングルトン インスタンス
types.Boolean.FALSE : 「false」を保持するtypes.Booleanのシングルトン インスタンス
getValue(index) / setValue(index, value) : value自体は、 sass.typesのコンストラクターのいずれかのインスタンスである必要があります。
getSeparator() / setSeparator(isComma) : 区切り文字としてカンマを使用するかどうか
getLength()
getKey(index) / setKey(index, value)
getValue(index) / setValue(index, value)
getLength()
types.Null.NULL : types.Nullのシングルトン インスタンス。
sass.renderSync({
データ: '#{見出し(2,5)} { カラー: #08c; }'、
関数: {'Headings($from: 0, $to: 6)': function(from, to) { var i, f = from.getValue(), t = to.getValue(), list = new sass.types .List(t - f + 1); for (i = f; i <= t; i++) {list.setValue(i - f, new sass.types.String('h' + i)); リストを返します;}
}});タイプ: Array<String>
デフォルト: []
LibSass が@import宣言を解決するために調べることができるパスの配列。 data使用する場合は、これを使用することをお勧めします。
タイプ: Boolean
デフォルト: false
true値を指定すると、データ文字列またはファイルを解析するための Sass Indented Syntax が有効になります。
注:ファイル名に .sass および .scss 拡張子が使用されている限り、node-sass/libsass は scss ファイルとインデント構文 (.sass) ファイルの混合ライブラリをデフォルト設定 (false) でコンパイルします。
タイプ: String
デフォルト: space
インデントにスペースまたはタブ文字を使用するかどうかを決定するために使用されます。
タイプ: Number
デフォルト: 2
最大: 10
インデントに使用するスペースまたはタブの数を決定するために使用されます。
タイプ: String
デフォルト: lf
改行にcr 、 crlf 、 lfまたはlfcrシーケンスを使用するかどうかを決定するために使用されます。
タイプ: Boolean
デフォルト: false
特別:これを使用するときは、予期しない動作を避けるためにoutFileも指定する必要があります。
true値を指定すると、出力ファイルへのソース マップ情報の組み込みが無効になります。
タイプ: String | null
デフォルト: null
特別: sourceMapが真の値の場合に必須
出力ファイルの目的の場所を指定します。ソース マップを出力するときに、意図したファイルを適切に参照できるようにすることを強くお勧めします。
このオプションを有効にしても、ディスク上にファイルが書き込まれるわけではありません。これは内部参照のみを目的としています (マップの生成など)。
ディスクへの書き込み例
sass.render({...outFile: yourPathTotheFile,
}, function(error, result) { // v3.0.0 以降のノード スタイルのコールバックif(!error){ // コンパイル中にエラーは発生しません。この結果をディスクに書き込みます fs.writeFile(yourPathTotheFile, result.css, function (err){if(!err){ //ディスクに書き込まれたファイル} });}
});});タイプ: String
デフォルト: nested
値: nested 、 expanded 、 compact 、 compressed
最終的な CSS スタイルの出力形式を決定します。
タイプ: Integer
デフォルト: 5
小数点以下の桁数を許可するかを決定するために使用されます。たとえば、10 進数が1.23456789で精度が5の場合、最終的な CSS の結果は1.23457になります。
タイプ: Boolean
デフォルト: false
trueセレクターが定義されている行番号とファイルを、コンパイルされた CSS にコメントとして出力できるようにします。特にインポートとミックスインを使用する場合のデバッグに役立ちます。
タイプ: Boolean | String | undefined
デフォルト: undefined
renderおよびrenderSync中のソース マップの生成を有効にします。
sourceMap === trueの場合、 outFileの値は、サフィックス.mapが付加されたソース マップのターゲット出力場所として使用されます。 outFileが設定されていない場合、 sourceMapパラメータは無視されます。
typeof sourceMap === "string"の場合、 sourceMapの値がファイルの書き込み場所として使用されます。
タイプ: Boolean
デフォルト: false
trueソースマップ情報のcontentsを含みます。
タイプ: Boolean
デフォルト: false
trueソース マップをデータ URI として埋め込みます。
タイプ: String
デフォルト: undefined
値はソースマップ情報のsourceRootとして出力されます。
renderコールバック (v3.0.0 以上) node-sass は、 function(err, result)のシグネチャを持つ標準のノード スタイルの非同期コールバックをサポートします。エラー状態では、 error引数にエラー オブジェクトが設定されます。成功条件では、 resultオブジェクトには、レンダー呼び出しの結果を記述するオブジェクトが設定されます。
message (文字列) - エラー メッセージ。
line (数値) - エラーの行番号。
column (数値) - エラーの列番号。
status (数値) - ステータスコード。
file (文字列) - エラーのファイル名。 fileオプションが設定されていない場合 ( dataを優先)、これは値stdin反映します。
css (バッファ) - コンパイルされた CSS。これをファイルに書き込むか、必要に応じて提供します。
map (バッファ) - ソースマップ
stats (オブジェクト) - コンパイルに関する情報を含むオブジェクト。これには次のキーが含まれます。
entry (文字列) - scss ファイルへのパス、またはソースがファイルでない場合はdata
start (数値) - コンパイル前の Date.now()
end (数値) - コンパイル後の Date.now()
duration (数値) -終了-開始
includedFiles (配列) - 関連するすべての scss ファイルへの絶対パス (順序不同)。
var sass = require('node-sass');sass.render({
ファイル: '/path/to/myFile.scss',
データ: 'ボディ{背景:青; {色:黒;}}'、
importer: function(url, prev, none) {// url は、LibSass が検出したインポート内のパスです。// prev は、以前に解決されたパスです。// done は、オプションのコールバックです。それを消費するか、同期的に値を返します。 .// this.options にはこのオプションのハッシュが含まれ、this.callback にはノード スタイルのコールバックが含まれますsomeAsyncFunction(url, prev, function(result){ done({file: result.path, // 1 つだけそのうちのいずれかは必須です。「特別な動作」セクションを参照してください。content: result.data });});// ORvar result = someSyncFunction(url, prev);return {file: result.path, content: result.data};
}、
includePaths: [ 'lib/', 'mod/' ],
OutputStyle: 'compressed'}, function(error, result) { // v3.0.0 以降のノードスタイルのコールバック
if (エラー) {console.log(error.status); // v2x では「code」であり、以下にありましたconsole.log(error.column);console.log(error.message);console.log(error.line);
}
else {console.log(result.css.toString());console.log(result.stats);console.log(result.map.toString());// または、より良いconsole.log(JSON.stringify(result.地図)); // 注意、JSON.stringify は Buffer も受け入れます
}});// ORvar result = sass.renderSync({
ファイル: '/path/to/file.scss',
データ: 'ボディ{背景:青; {色:黒;}}'、
出力スタイル: '圧縮',
outファイル: '/to/my/output.css',
sourceMap: true, // または絶対パスまたは相対 (outFile への) パス
importer: function(url, prev, none) {// url は、LibSass が検出したインポート内のパスです。// prev は、以前に解決されたパスです。// done は、オプションのコールバックです。それを消費するか、同期的に値を返します。 .// this.options にはこのオプションが含まれます hashsomeAsyncFunction(url, prev, function(result){ done({file: result.path, // そのうちの 1 つだけが必要です。特別なセクションを参照してください) Behaviours.contents: result.data });});// ORvar result = someSyncFunction(url, prev);return {file: result.path, content: result.data};
}});console.log(result.css);console.log(result.map);console.log(result.stats);fileとdataオプションの両方が設定されている場合、node-sass はdataを優先し、 file使用してソースマップ内のパスを計算します。
node-sassとlibsass両方のバージョン情報がinfoメソッドを介して公開されるようになりました。
var sass = require('node-sass');console.log(sass.info);/* 次のような出力になります: node-sass 2.0.1 (ラッパー) [JavaScript] libsass 3.1.0 (Sass コンパイラー) [ C/C++]*/node-sass >=v3.0.0 以降、LibSass のバージョンは実行時に決定されます。
ビルドツールとフレームワークにおけるnode-sassのコミュニティ使用のリスト。
@jasonsanjose は、node-sass に基づいて Brackets 拡張機能を作成しました: https://github.com/jasonsanjose/brackets-sass。 Sass ファイルを編集する場合、拡張機能は保存時に変更をコンパイルします。この拡張機能はライブ プレビューとも統合されており、保存やコンパイルを行わずに Sass の変更をブラウザーに表示します。
Brunch の公式 sass プラグインはデフォルトで node-sass を使用し、Compass の使用が検出された場合は自動的に Ruby にフォールバックします: https://github.com/brunch/sass-brunch
Connect および Express ベースの http サーバー用に.scssファイルを自動的に再コンパイルします。
この機能は、node-sass v1.0.0 のnode-sass-middlewareに移動されました。
@10xLaCroixDrinker は、node-sass を使用して.scssファイルをコンパイルする DocPad プラグインを作成しました: https://github.com/docpad/docpad-plugin-nodesass
@stephenway は、duo.js で node-sass を使用して Sass を CSS にトランスパイルする拡張機能を作成しました https://github.com/duojs/sass
@sindresorhus は、node-sass に基づいて一連の grunt タスクを作成しました: https://github.com/sindresorhus/grunt-sass
@dlmanning は、node-sass に基づいて gulp sass プラグインを作成しました: https://github.com/dlmanning/gulp-sass
@sintaxi の Harp Web サーバーは、node-sass を使用して.scssファイルを暗黙的にコンパイルします: https://github.com/sintaxi/harp
@stevenschobert は、node-sass に基づいて metalsmith プラグインを作成しました: https://github.com/stevenschobert/metalsmith-sass
@fourseven は、node-sass に基づいて meteor プラグインを作成しました: https://github.com/fourseven/meteor-scss
@dbashford は、node-sass を含む sass 用の Mimosa モジュールを作成しました: https://github.com/dbashford/mimosa-sass
ここには接続アプリの例もあります: https://github.com/andrew/node-sass-example
Node-sass には、一般的なプラットフォーム用にコンパイル済みのバイナリが含まれています。プラットフォーム用のバイナリを追加するには、次の手順に従います。
プロジェクトをチェックしてください:
git clone --recursive https://github.com/sass/node-sass.gitcd node-sass npmインストール node scripts/build -f # デバッグリリースには -d スイッチを使用します# 成功すると、バイナリが生成され、# ベンダーディレクトリに移動されます。
次の使用法のセクションに示すように、コマンドラインで使用するインターフェイスは、この段階ではかなり単純化されています。
--outputフラグが省略された場合、出力は stdout に送信されます。
node-sass [options] <input> [output]または: cat <input> | node-sass > output
例:
node-sass src/style.scss dest/style.css
オプション:
-w、--watch ディレクトリまたはファイルを監視します
-r, --recursive ディレクトリまたはファイルを再帰的に監視します
-o, --output 出力ディレクトリ
-x, --omit-source-map-url 出力からソース マップ URL コメントを省略します。
-i, --indented-syntax 標準入力からのデータを (scss ではなく) Sass コードとして扱います。
-q、--quit エラー時以外のログ出力を抑制します。
-v, --version バージョン情報を出力します。
--output-style CSS 出力スタイル (ネスト | 展開 | コンパクト | 圧縮)
--indent-type 出力 CSS のインデント タイプ (スペース | タブ)
--indent-width インデント幅。スペースまたはタブの数 (最大値: 10)
--linefeed 改行スタイル (cr | crlf | lf | lfcr)
--source-comments 出力にデバッグ情報を含めます
--source-map ソースマップを出力します
--source-map-contents マップにコンテンツを埋め込みます
--source-map-embed sourceMappingUrl をデータ URI として埋め込みます
--source-map-root ベース パス。source-map にそのまま出力されます。
--include-path インポートされたファイルを探すパス
--follow シンボリックリンクされたディレクトリをフォローします
--precision 10 進数で許可される精度の量
--error-bell エラー時にベル文字を出力します
--importer カスタム インポーターを含む .js ファイルへのパス
--functions カスタム関数を含む .js ファイルへのパス
--help 使用法情報を出力するinput単一の.scssまたは.sass 、またはディレクトリのいずれかです。入力がディレクトリの場合は、 --outputフラグも指定する必要があります。
また、 --importer js ファイルへの (絶対または pwd に対する相対) パスを取得することに注意してください。これには、デフォルトのmodule.exportsがインポーター関数に設定されている必要があります。たとえば、テストフィクスチャを参照してください。
--source-mapオプションはブール値を受け入れます。この場合、宛先拡張子は.css.mapに置き換えられます。 .mapファイルへのパスや、目的のディレクトリへのパスも受け入れます。ディレクトリをコンパイルする場合、 --source-mapはブール値またはディレクトリを指定できます。
node-sass は、バイナリ名、バイナリ パス、代替ダウンロード パスなど、sass バイナリに関連する設定を変更するためのさまざまな設定パラメータをサポートしています。次のパラメータがnode-sassでサポートされています。
| 変数名 | .npmrcパラメータ | プロセス引数 | 価値 |
|---|---|---|---|
| SASS_BINARY_NAME | sass_binary_name | --sass バイナリ名 | パス |
| SASS_BINARY_SITE | sass_binary_site | --sass-バイナリサイト | URL |
| SASS_BINARY_PATH | sass_binary_path | --sass バイナリ パス | パス |
| SASS_BINARY_DIR | sass_binary_dir | --sass-バイナリ-ディレクトリ | パス |
| SASS_REJECT_UNAUTHORIZED | sass_reject_unauthorized | --sass-reject-unauthorized | 価値 |
これらのパラメータは環境変数として使用できます。
たとえば、 export SASS_BINARY_SITE=http://example.com/
ローカルまたはグローバルの .npmrc 構成ファイルとして:
例: sass_binary_site=http://example.com/
プロセス引数として:
例: npm install node-sass --sass-binary-site=http://example.com/
バイナリに自己署名証明書を使用している場合は、 SASS_REJECT_UNAUTHORIZEDが (rejectUnauthorized)[https://nodejs.org/docs/latest/api/tls.html#tls_tls_createserver_options_secureconnectionlistener] をオーバーライドします。
インストールでは、マシンが事前に構築された LibSass を使用できるかどうかを確認するための Mocha テストが 2 つだけ実行され、インストール中に時間を節約できます。テストが失敗した場合は、ソースからビルドされます。
このモジュールは次の人々によって提供され、保守されています。
Michael Mifsud - プロジェクト リーダー (Github / Twitter)
アンドリュー・ネスビット (Github / Twitter)
ディーン・マオ (Github / Twitter)
ブレット・ウィルキンス (Github / Twitter)
キース・サーケル (Github / Twitter)
ローラン・ゴデール (Github / Twitter)
Nick Schonning (Github / Twitter)
アディール・ムジャヒド (Github / Twitter)
私たちの貢献者は 3 人未満です!このプロジェクトに開発時間を費やしてくださった皆様に心より感謝申し上げます。ご尽力に心より感謝いたします。それらの人々の完全なリストはここで見つけることができます。
貢献ガイドをご覧ください
著作権 (c) 2015 アンドリュー ネスビット。詳細については、「ライセンス」を参照してください。