警告: 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 アンドリュー ネスビット。詳細については、「ライセンス」を参照してください。