Getting errors while installing node-sass
Asked Answered
B

4

17

When I install node-sass for a React project, it gives me the error below. I tried lot of things but none did work. I tried to delete it and install it again, I tried to start a new project but it's still not working. I updated everything to the last version: node.js to v16.14.0 and npm to v8.3.1.

npm ERR! code 1
npm ERR! path C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: C:\Program Files\nodejs\node.exe C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli   'C:\\Program Files\\nodejs\\node.exe',
npm ERR! gyp verb cli   'C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-gyp\\bin\\node-gyp.js',
npm ERR! gyp verb cli   'rebuild',
npm ERR! gyp verb cli   '--verbose',
npm ERR! gyp verb cli   '--libsass_ext=',
npm ERR! gyp verb cli   '--libsass_cflags=',
npm ERR! gyp verb cli   '--libsass_ldflags=',
npm ERR! gyp verb cli   '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb download using dist-url https://npm.taobao.org/dist
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:198:21)
npm ERR! gyp verb `which` failed  python2 Error: not found: python2
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-gyp\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:198:21) {
npm ERR! gyp verb `which` failed   code: 'ENOENT'
npm ERR! gyp verb `which` failed }
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb `which` succeeded python C:\Python27\python.EXE
npm ERR! gyp verb check python version `C:\Python27\python.EXE -c "import sys; print "2.7.15
npm ERR! gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j
npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 16.14.0
npm ERR! gyp verb command install [ '16.14.0' ]
npm ERR! gyp verb download using dist-url https://npm.taobao.org/dist
npm ERR! gyp verb install input version string "16.14.0"
npm ERR! gyp verb install installing version: 16.14.0
npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed
npm ERR! gyp verb install version is already installed, need to check "installVersion"
npm ERR! gyp verb got "installVersion" 9
npm ERR! gyp verb needs "installVersion" 9
npm ERR! gyp verb install version is good
npm ERR! gyp verb get node dir target node version installed: 16.14.0
npm ERR! gyp verb build dir attempting to create "build" dir: C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass\build
npm ERR! gyp verb build dir "build" dir needed to be created? C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass\build
npm ERR! gyp verb find vs2017 Found installation at: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
npm ERR! gyp verb find vs2017   - Found Microsoft.VisualStudio.Component.Windows10SDK.19041
npm ERR! gyp verb find vs2017   - Found Microsoft.VisualStudio.Component.VC.Tools.x86.x64
npm ERR! gyp verb find vs2017   - Found Microsoft.VisualStudio.VC.MSBuild.Base
npm ERR! gyp verb find vs2017   - Using this installation with Windows 10 SDK
npm ERR! gyp verb find vs2017 using installation: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
npm ERR! gyp verb build/config.gypi creating config file
npm ERR! gyp verb build/config.gypi writing out config file: C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass\build\config.gypi
npm ERR! (node:20452) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
npm ERR! (Use `node --trace-deprecation ...` to show where the warning was created)
npm ERR! gyp verb config.gypi checking for gypi file: C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass\config.gypi
npm ERR! gyp verb common.gypi checking for gypi file: C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass\common.gypi
npm ERR! gyp verb gyp gyp format was not specified; forcing "msvs"
npm ERR! gyp info spawn C:\Python27\python.EXE
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   'C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-gyp\\gyp\\gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'msvs',
npm ERR! gyp info spawn args   '-G',
npm ERR! gyp info spawn args   'msvs_version=2015',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-sass\\build\\config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-gyp\\addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\XXXXX\\.node-gyp\\16.14.0\\include\\node\\common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=C:\\Users\\XXXXX\\.node-gyp\\16.14.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=C:\\Users\\XXXXX\\.node-gyp\\16.14.0\\<(target_arch)\\node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-sass',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-sass\\build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp verb command build []
npm ERR! gyp verb download using dist-url https://npm.taobao.org/dist
npm ERR! gyp verb build type Release
npm ERR! gyp verb architecture x64
npm ERR! gyp verb node dev dir C:\Users\XXXXX\.node-gyp\16.14.0
npm ERR! gyp verb found first Solution file build/binding.sln
npm ERR! gyp verb using MSBuild: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe
npm ERR! gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   'build/binding.sln',
npm ERR! gyp info spawn args   '/nologo',
npm ERR! gyp info spawn args   '/p:Configuration=Release;Platform=x64'
npm ERR! gyp info spawn args ]
npm ERR! gyp ERR! UNCAUGHT EXCEPTION
npm ERR! gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe ENOENT
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
npm ERR! gyp ERR! stack     at onErrorNT (node:internal/child_process:478:16)
npm ERR! gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
npm ERR! gyp ERR! System Windows_NT 10.0.19043
npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\XXXXX\\Documents\\GitHub\\XXXXX\\Frontend\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:\Users\XXXXX\Documents\GitHub\XXXXX\Frontend\node_modules\node-sass
npm ERR! gyp ERR! node -v v16.14.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! This is a bug in `node-gyp`.
npm ERR! gyp ERR! Try to update node-gyp and file an Issue if it does not help:
npm ERR! gyp ERR!     <https://github.com/nodejs/node-gyp/issues>
npm ERR! Build failed with error code: 7

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\XXXXX\AppData\Local\npm-cache\_logs\2022-02-14T22_43_35_171Z-debug-0.log
Bobodioulasso answered 14/2, 2022 at 23:1 Comment(0)
S
14

Just change the node version to v14.x.x

Or you may try installing newer versions of node-gpy

Here, read this issue: https://github.com/sass/node-sass/issues/3117

Succinylsulfathiazole answered 14/2, 2022 at 23:32 Comment(2)
so much time I spent with wrong versions of node... thank you!Jobey
Version 14.x.x is way ancient; returning to it should be the last solution. Consider first the first solution of the below answer.Eurystheus
E
14

First solution

Make sure your node.js version is not superior to the recommended one. If not, downgrade it, and for that, you could use n package from npm:

npm install -g n
n stable
# If one of the commands does not pass, you may need to use sudo
sudo npm install -g n
sudo n stable

Then you would wanna use sass package instead of node-sass, as it's deprecated. And for that, run those commands:

npm uninstall node-sass --save
npm install sass --save

Second solution

If you need or want node-sass for some reason, you should downgrade your nodejs version to like v14. For that you can use n package from npm:

npm install -g n
n 14
# If one of the commands does not pass, you may need to use sudo
sudo npm install -g n
sudo n 14
Eurystheus answered 14/2, 2022 at 23:4 Comment(1)
OMG, it's alive) Thank you so muchFactional
S
14

Just change the node version to v14.x.x

Or you may try installing newer versions of node-gpy

Here, read this issue: https://github.com/sass/node-sass/issues/3117

Succinylsulfathiazole answered 14/2, 2022 at 23:32 Comment(2)
so much time I spent with wrong versions of node... thank you!Jobey
Version 14.x.x is way ancient; returning to it should be the last solution. Consider first the first solution of the below answer.Eurystheus
C
13

Don't use node-sass package

Since node-sass is been deprecated, you will have to use its new version, which is sass.

You can uninstall the old and install the new one with this command

npm uninstall node-sass
npm install sass

Charry answered 10/8, 2022 at 20:10 Comment(0)
U
2

The problem is with node version incompatibility. Node sass versions have a compatibility chart here

Node-sass/node version compatibility chart

Both node-sass and libsass have been deprecated in favor of Dart Sass (sass) since October 2020.

In my case I had to downgrade my node version to 14.20.0 since a lot of packages I depend on use 4.x.x

But I can't allow one package to hold my project hostage. so I did some research and found this article about preventing a package from installing even if it's specified by other dependencies, which is likely what you want

TLDR;

  1. Install sass using yarn add -D sass if not installed.

  2. Create a folder named dependency-stub in your project root 2.1. Put a file named index.js in the dependency-stub folder 2.2. then add the lines below

    module.exports = {};
    //(which is the stub we will redirect to using resolutions).
    

    2.3. yarn – add a package.json file to the dependency-stub directory 2.4. Add the lines below to the package.json

    {
      "name": "node-sass",
      "version": "0.0.0"
    }
    

    npm – see note under step 3.

  3. In your main package.json, i.e in your project root, add the lines as appears below to the resolutions(or overrides if using NPM) section.

{ 
  ...,
  "resolutions": {
     ...
     "node-sass": "file:dependency-stub"
  },
}

npmuse the overrides section rather than resolutions, and since npm file urls are relative to the current dependency, you can either use an absolute path to dependency-stub (possibly placing it in your home directory), a URL for a stub module, or a GitHub URL for a stub module.

  1. In tsconfig.json add “dependency-stub” to the include array (to prevent ESLint from throwing errors regarding the file not being in the project). *Ignore if you don't use typscript or you use and dependency-stub isn’t in your project directory, this is not needed.
Urticaceous answered 31/3, 2023 at 12:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.