我目前正在运行NPM的node-sass工具,但它所运行的libsass版本是3.2.2,而我需要运行的版本是3.2.4,因为这修复了我使用的一个框架中的关键错误。
我找不到任何有关如何构建和/或更新node-sass或libsass以满足我的要求的信息。我已经运行了最新版本的node-sass,即3.1.2。
然而,我的node-sass的package.json
似乎有一个键值对,指示libsass是3.2.4,但这显然不正确。
升级我的libsass版本最简单的方法是什么?
更新
6月
我进行了一些额外的搜索,仍然无法使libsass的版本达到3.2.4。我尝试升级旧的node-sass包并检查环境变量是否被覆盖,但目前还没有解决方案。
7月
似乎node-sass使用的Libsass版本是3.2.4,但未被检测到,并且默认情况下是Libass binarypath
:
path.join(__dirname, '..', 'vendor', sass.binaryName.replace(/_/, '/'));
在我的计算机上产生的结果是:
H:\myproj\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64-14\binding.node
我不知道这是什么意思。请查看位于第134行的node-sass\lib\extensions.js
:
sass.getBinaryPath = function(throwIfNotExists) {
var binaryPath;
if (flags['--sass-binary-path']) {
binaryPath = flags['--sass-binary-path'];
} else if (process.env.SASS_BINARY_PATH) {
binaryPath = process.env.SASS_BINARY_PATH;
} else if (pkg.nodeSassConfig && pkg.nodeSassConfig.binaryPath) {
binaryPath = pkg.nodeSassConfig.binaryPath;
// This is the only statement that executes successfully, my libsass binary path is coming from this location. Why?
} else {
binaryPath = path.join(__dirname, '..', 'vendor', sass.binaryName.replace(/_/, '/'));
}
if (!fs.existsSync(binaryPath) && throwIfNotExists) {
throw new Error(['`libsass` bindings not found in ', binaryPath, '. Try reinstalling `node-sass`?'].join(''));
}
return binaryPath;
};
sass.binaryPath = sass.getBinaryPath();