0

grunt-sass依存するを使用するプロジェクトがたくさんあります。それらのプロジェクトの 1 つを git リポジトリからチェックアウトし、それらを再度コンパイルして自分のコンピューターでチェックアウトするたびに、このプロセスには多くの時間がかかります。node-sasslibsassnpm installlibsass

node-sass既存のlibsassバイナリを提供する方法があるため、毎回コンパイルするプロセスを実行する必要はありません。( https://github.com/sass/node-sass#binary-configuration-parameters )

node-sass次に、 npm パッケージをグローバルにインストールしてみました。libsass をコンパイルし、私の/usr/local/lib/node_modules/node-sassフォルダーにインストールします。

npm install -g node-sass

ファイルにsass_binary_pathパラメータを設定した後:~/.npmrc

sass_binary_path=/usr/local/lib/node_modules/node-sass/vendor/darwin-x64-47/binding.node

プロジェクトをnpm installチェックアウトした後、libsass はコンパイルされなくなり、インストールは成功します。しかし、grunt-sass を使用する grunt タスクを実行すると、次のようになります。

Loading "sass.js" tasks...ERROR
>> Error: ENOENT: no such file or directory, scandir '~/dev/my-project/node_modules/node-sass/vendor'
Warning: Task "sass:dist" not found. Use --force to continue.

Aborted due to warnings.

このキャッシングのプロセスで何が間違っていlibsassますか?

--

編集:

通常の手順でインストールするとnpm install、node_modules/node-sass/vendor/darwin-x64-47/binding.node が作成されます。node_modules/node-sass/vendornode-sass キャッシュ フラグを使用しようとすると、フォルダーも作成されません。

4

2 に答える 2

1

透過的なキャッシングはhttps://github.com/sass/node-sass/pull/1714 (おそらくバージョン 3.11) で行われます。PR を修正する必要があるだけです。

于 2016-09-16T01:28:57.970 に答える
1

node-sassやっとキャッシュライブラリが使えるようになりました。

まず、 https ://github.com/sass/node-sass/releases からバイナリ パッケージをダウンロードする必要があります。

次に、環境変数を使用してこのバイナリをポイントしました。

export SASS_BINARY_PATH="$HOME/dev/bin/darwin-x64-47_binding.node"

npm で node-sass をインストールすると、提供されたバイナリが使用されます。

于 2016-09-15T15:49:48.997 に答える