2016-09-14 204 views
0

我有很多項目使用grunt-sass,這取決於node-sass,這取決於libsass。每次我從他們的git倉庫中籤出這些項目中的一個,並且他們npm installlibsass被再次編譯並且在我的電腦中,這個過程需要很多時間。安裝grunt-sass時使用緩存的libsass二進制文件

node-sass有辦法提供現有的libsass二進制文件,所以我不必每次都要經歷編譯它的過程。 (https://github.com/sass/node-sass#binary-configuration-parameters

我試過然後在全局安裝了一個node-sass npm包。它編譯libsass和我/usr/local/lib/node_modules/node-sass文件夾中安裝它:

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

當我後結賬他們npm install我的項目,libsass:

npm install -g node-sass

後,我在~/.npmrc文件中設置一個sass_binary_path參數不再編譯,安裝成功。 但是,當我執行它使用咕嚕 - 薩斯咕嚕任務,這裏就是我得到:

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的這個過程中做錯了什麼?

-

編輯:

當我使用正常的過程中,node_modules /節點SASS /供應商/達爾文-x64-47/binding.node安裝npm install被創建。當我嘗試使用node-sass緩存標誌時,它甚至不創建node_modules/node-sass/vendor文件夾。

+0

我不確定libsass是你的問題。你的.scss文件是什麼樣的?任何對供應商的引用? – Nix

+0

不,在'node_modules/node-sass'內沒有對該供應商目錄的引用。當我使用普通進程安裝時,會創建'node_modules/node-sass/vendor/darwin-x64-47/binding.node'。當我嘗試使用node-sass緩存標誌時,它不是。 – armoucar

回答

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時,它使用提供的二進制文件。

相關問題