gpt4 book ai didi

node.js - 如何使用 npm 升级 Libsass?

转载 作者:IT老高 更新时间:2023-10-28 23:08:48 25 4
gpt4 key购买 nike

我目前正在运行 NPM 的 node-sass 工具,但它运行的 libsass 版本是 3.2.2,而我需要运行的版本是 3.2.4,因为这修复了其中一个关键错误我正在使用的框架。

enter image description here

我找不到有关如何构建和/或更新 node-sass 或 libsass 以满足我的要求的信息。我已经在运行最新版本的 node-sass 3.1.2。

然而,我的 node-sass package.json 似乎有一个键:值对表明 libsass 是 3.2.4,但这显然是不正确的。

升级我的 libsass 版本最简单的方法是什么?

更新

6 月 6 日

我做了一些额外的搜索,但仍然无法让 libsass 成为 3.2.4 版本。我尝试升级旧的 node-sass 包,并检查我的环境变量是否有覆盖。还没有解决办法。

6 月 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();

最佳答案

对此没有特殊的命令。查看 lib/extensions.js 文件。它有几个有趣的行:

/**
* The default URL can be overriden using
* the environment variable SASS_BINARY_SITE
* or a command line option --sass-binary-site:
*
* node scripts/install.js --sass-binary-site http://example.com/
*
* The URL should to the mirror of the repository
* laid out as follows:
* SASS_BINARY_SITE/
* v3.0.0
* v3.0.0/freebsd-x64-14_binding.node
* ... etc. for all supported versions and platforms
*/

Libsass 在这种情况下只是 source folder .您可以尝试进行干净的构建。删除 node-sass 并重新安装。

npm install node-sass@3.0.0
...
node ./node_modules/.bin/node-sass --version
node-sass 3.0.0 (Wrapper) [JavaScript]
libsass 3.2.2 (Sass Compiler) [C/C++]

更新时:

npm update node-sass
node ./node_modules/.bin/node-sass --version
node-sass 3.1.2 (Wrapper) [JavaScript]
libsass 3.2.4 (Sass Compiler) [C/C++]

附:小心 3.2.4 中的 @at-root。是bugged .

更新
如果它不能解决您的问题,请尝试使用

删除所有 npm 缓存
npm cache clean

第二次更新
尝试手动安装绑定(bind):

cd node-sass
rm -r vendor
node scripts/install.js --sass-binary-site https://github.com/sass/node-sass/releases/download/

它会输出类似:

Binary downloaded and installed at /Users/sobolev/Documents/github/modernizr-mixin/node_modules/node-sass/vendor/darwin-x64-14/binding.node

关于node.js - 如何使用 npm 升级 Libsass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com