无法在Ubuntu 20上安装'node-sass'

10

我使用webpack 4、sass、pug和bemto。在Windows上,模块正常工作,但在Ubuntu上:

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! node-sass@4.14.1 postinstall: `node scripts/build.js`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the node-sass@4.14.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

我尝试输入命令:

sudo npm install -g --unsafe-perm node-sass

>

(node:8310) [DEP0139] DeprecationWarning: Calling process.umask() with no arguments is prone to race conditions and is a potential security vulnerability.
(Use `node --trace-deprecation ...` to show where the warning was created)
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
/usr/local/bin/node-sass -> /usr/local/lib/node_modules/node-sass/bin/node-sass
npm WARN lifecycle The node binary used for scripts is /snap/bin/node but npm is using /snap/node/2725/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> node-sass@4.14.1 install /usr/local/lib/node_modules/node-sass
> node scripts/install.js

Cached binary found at /root/.npm/node-sass/4.14.1/linux-x64-83_binding.node

> node-sass@4.14.1 postinstall /usr/local/lib/node_modules/node-sass
> node scripts/build.js

Binary found at /usr/local/lib/node_modules/node-sass/vendor/linux-x64-83/binding.node
Testing binary
/snap/node/2725/bin/node: symbol lookup error: /usr/local/lib/node_modules/node-sass/vendor/linux-x64-83/binding.node: undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorENS_14SideEffectTypeEPKNS_9CFunctionE
npm WARN You are using a pre-release version of node and things may not work as expected

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! node-sass@4.14.1 postinstall: `node scripts/build.js`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the node-sass@4.14.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

更新:

我尝试过以下操作: npm uninstall node-sass 然后执行: npm install node-sass 但是没有起到作用。

我还尝试了以下操作: npm install node-gyp global, save, savedev

ERROR in ./src/sсss/critical.scss (./node_modules/css-loader??ref--5-1!./node_modules/sass-loader/lib/loader.js??ref--5-2!./src/sсss/critical.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Cannot find module 'node-sass'
Require stack:
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/sass-loader/lib/loader.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/loadLoader.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/LoaderRunner.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/webpack/lib/NormalModule.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/webpack/lib/NormalModuleFactory.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/webpack/lib/Compiler.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/webpack/lib/webpack.js
- /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/webpack-dev-server/bin/webpack-dev-server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1020:15)
    at Function.Module._load (internal/modules/cjs/loader.js:890:27)
    at Module.require (internal/modules/cjs/loader.js:1080:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/home/gorevanova/Documents/WebStorm/webpack-static/node_modules/sass-loader/lib/loader.js:3:14)
    at Module._compile (internal/modules/cjs/loader.js:1176:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Module.load (internal/modules/cjs/loader.js:1040:32)
    at Function.Module._load (internal/modules/cjs/loader.js:929:14)
    at Module.require (internal/modules/cjs/loader.js:1080:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at loadLoader (/home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/loadLoader.js:18:17)
    at iteratePitchingLoaders (/home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
    at iteratePitchingLoaders (/home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
    at /home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/LoaderRunner.js:176:18
    at loadLoader (/home/gorevanova/Documents/WebStorm/webpack-static/node_modules/loader-runner/lib/loadLoader.js:47:3)

但问题并不离我而去。


请将您的问题标题更改 - satanTime
@satanTime 没问题。哪个标题看起来更好? - gorevanova
这描述了你的问题,目前听起来像是建议。 - satanTime
1
@satanTime 标题已更正。谢谢! - gorevanova
Node Sass 使用本地代码。它应该使用 node-gyp 进行构建。尝试重新安装它。 - Orkhan Alikhanov
@orkhan-alikhanov没有帮助。更新了问题的正文。添加了日志。 - gorevanova
4个回答

14
运行以下命令:rm -rf ./node_modules ./package-lock.json,然后运行npm cache verify提示:我建议安装nvm
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

另外,我不知道你是否已经安装了它,但请确保也安装了build-essential

$ sudo apt update && apt install build-essential 

这是一组C++编译器和一堆有用的东西

我注意到的另一件事是缺乏Python 2.x.x

$ sudo apt install python

1
你做了所有的事情,除了一件事情。此外,它告诉你正在使用一个预发布版本的node,可能会导致一些意外的问题。同时,它还提示说,用于脚本的node二进制文件是/snap/bin/node,但npm正在使用/snap/node/2725/bin/node本身。这表明用于编译node-sass的snap的node版本与当前版本不兼容。这就是为什么我提到了nvm https://github.com/nvm-sh/nvm - Ernesto
3
在Ubuntu 20.14上安装Python解决了我的错误。 - Lukman Isiaka

3

试试这个方法,对我有效。

npm i --unsafe-perm node-sass

2

0

在 /root/.npm/node-sass/4.14.1/linux-x64-83_binding.node 找到缓存的二进制文件 在 /usr/local/lib/node_modules/node-sass/vendor/linux-x64-83/binding.node 找到二进制文件 测试二进制文件

我认为问题可能是它正在使用升级到Ubuntu 20之前的缓存版本,如果是这种情况,删除缓存的二进制文件将解决此问题。

这只是我的猜测,你已经尝试过什么来解决这个问题了吗?


我尝试清除缓存,但无视系统警告。然而并没有起作用。 - gorevanova
npm uninstall node-sass。然后:npm install node-sass。但是没有帮助。 - gorevanova

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接