Commit 2b8a9862 by Michael Mifsud

Merge pull request #1145 from Vitogee/npm-config-binary-url

Use sass binary url from .npmrc if available
parents 30b2b140 0e0b38d7
......@@ -509,6 +509,28 @@ Also, note `--importer` takes the (absolute or relative to pwd) path to a js fil
The `--source-map` option accepts a boolean value, in which case it replaces destination extension with `.css.map`. It also accepts path to `.map` file and even path to the desired directory.
When compiling a directory `--source-map` can either be a boolean value or a directory.
## Binary configuration parameters
node-sass supports different configuration parameters to change settings related to the sass binary such as binary name, binary path or alternative download path. Following parameters are supported by node-sass:
Variable name | .npmrc parameter | Process argument | Value
-----------------|------------------|--------------------|------
SASS_BINARY_NAME | sass_binary_name | --sass-binary-name | path
SASS_BINARY_SITE | sass_binary_site | --sass-binary-site | URL
SASS_BINARY_PATH | sass_binary_path | --sass-binary-path | path
These parameters can be used as environment variable:
* E.g. `export SASS_BINARY_SITE=http://example.com/`
As local or global [.npmrc](https://docs.npmjs.com/misc/config) configuration file:
* E.g. `sass_binary_site=http://example.com/`
As a process argument:
* E.g. `npm install node-sass --SASS_BINARY_SITE=http://example.com/`
## Post-install Build
Install runs only two Mocha tests to see if your machine can use the pre-built [libsass] which will save some time during install. If any tests fail it will build from source.
......
......@@ -48,7 +48,8 @@ function getRuntimeInfo() {
/**
* Get binary name.
* If environment variable SASS_BINARY_NAME or
* If environment variable SASS_BINARY_NAME,
* .npmrc variable sass_binary_name or
* process argument --binary-name is provided,
* return it as is, otherwise make default binary
* name: {platform}-{arch}-{v8 version}.node
......@@ -63,6 +64,8 @@ function getBinaryName() {
binaryName = flags['--sass-binary-name'];
} else if (process.env.SASS_BINARY_NAME) {
binaryName = process.env.SASS_BINARY_NAME;
} else if (process.env.npm_config_sass_binary_name) {
binaryName = process.env.npm_config_sass_binary_name;
} else if (pkg.nodeSassConfig && pkg.nodeSassConfig.binaryName) {
binaryName = pkg.nodeSassConfig.binaryName;
} else {
......@@ -80,7 +83,8 @@ function getBinaryName() {
* site on GitHub.
*
* The default URL can be overriden using
* the environment variable SASS_BINARY_SITE
* the environment variable SASS_BINARY_SITE,
* .npmrc variable sass_binary_site or
* or a command line option --sass-binary-site:
*
* node scripts/install.js --sass-binary-site http://example.com/
......@@ -104,6 +108,7 @@ function getBinaryName() {
function getBinaryUrl() {
var site = flags['--sass-binary-site'] ||
process.env.SASS_BINARY_SITE ||
process.env.npm_config_sass_binary_site ||
(pkg.nodeSassConfig && pkg.nodeSassConfig.binarySite) ||
'https://github.com/sass/node-sass/releases/download';
......@@ -121,7 +126,8 @@ sass.runtime = getRuntimeInfo();
/**
* Get binary path.
* If environment variable SASS_BINARY_PATH or
* If environment variable SASS_BINARY_PATH,
* .npmrc variable sass_binary_path or
* process argument --sass-binary-path is provided,
* select it by appending binary name, otherwise
* make default binary path using binary name.
......@@ -140,6 +146,8 @@ sass.getBinaryPath = function(throwIfNotExists) {
binaryPath = flags['--sass-binary-path'];
} else if (process.env.SASS_BINARY_PATH) {
binaryPath = process.env.SASS_BINARY_PATH;
} else if (process.env.npm_config_sass_binary_path) {
binaryPath = process.env.npm_config_sass_binary_path;
} else if (pkg.nodeSassConfig && pkg.nodeSassConfig.binaryPath) {
binaryPath = pkg.nodeSassConfig.binaryPath;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment