dlmanning / gulp-sass

SASS plugin for gulp
MIT License
1.56k stars 381 forks source link

Can't install gulp-sass, node-gyp error despite everything up to date. #780

Closed tbolon closed 3 years ago

tbolon commented 3 years ago

Hi, I am on a windows environment. I have the latest nodejs installed (v15) and installed manually all latest version of node-sass and node-gyp:

  "devDependencies": {
    "gulp": "^4.0.2",
    "node-gyp": "^7.1.2",
    "node-sass": "^5.0.0"
  }

I have installed both python2 and python3

When I try to install npm install gulp-sass --save-dev I receive the following error:

npm ERR! code 1
npm ERR! path C:\code\...\node_modules\gulp-sass\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:\code\...\node_modules\gulp-sass\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:\\code\\T...\\node_modules\\gulp-sass\\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 node-gyp@3.8.0
npm ERR! gyp info using node@15.0.1 | 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 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:\code\...\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\code\...\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\code\...\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\code\...\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\code\...\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\code\...\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:183:21)
npm ERR! gyp verb `which` failed  python2 Error: not found: python2
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\code\...\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\code\...\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\code\...\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\code\...\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\code\...\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\code\...\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:183: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:\Python39\python.EXE
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: C:\Python39\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack   File "<string>", line 1
npm ERR! gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack                       ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack
npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:309:12)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:327:20)
npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1048:16)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:288:5)
npm ERR! gyp ERR! System Windows_NT 10.0.19042
npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\code\\Team\\...\\node_modules\\gulp-sass\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:\code\...\node_modules\gulp-sass\node_modules\node-sass
npm ERR! gyp ERR! node -v v15.0.1
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Thomas\AppData\Local\npm-cache\_logs\2020-11-03T10_56_30_108Z-debug.log

I don't understand why gyp still says it uses node-gyp@3.8.0 in npm ERR! gyp info using node-gyp@3.8.0, and why it still uses python2 scripts.

I have tried to start from scratch (removed all my node_modules folder), reinstalled gulp locally from scratch and now I just want to install gulp-sass.

I have searched the node-gyp and node-sass repos for related issues without success...

It really seems to be a problem related to node-gyp and not gulp-sass, but as I have installed both them as dev dependencies, and the problem now occurs only when trying to install gulp-sass, I have decided to open an issue here.

Feel free to ask for more details.

Thanks,

KaiSforza commented 3 years ago

Looking at the dependency tree this is because gulp-sass depends on node-sass, which says it's deprecated (though new node-sass versions have an up-to-date node-gyp dependency).

tbolon commented 3 years ago

Looking at the dependency tree this is because gulp-sass depends on node-sass, which says it's deprecated (though new node-sass versions have an up-to-date node-gyp dependency).

This is why I explicitly installed "node-sass": "^5.0.0" which is the latest version. But maybe it is not sufficient ?

selfisekai commented 3 years ago

I created a fork of gulp-sass that doesn't list node-sass as a dependency at all: https://yarnpkg.com/package/@selfisekai/gulp-sass https://www.npmjs.com/package/@selfisekai/gulp-sass https://git.sakamoto.pl/selfisekai/gulp-sass

Erithax commented 3 years ago

Having the same issue with. node -v v15.5.0 node-gyp -v v3.8.0

NickSharf commented 3 years ago

There is a package based on this project with dart-sass replacement https://www.npmjs.com/package/gulp-dart-sass. Try to use it instead of gulp-sass.

STNKdev commented 3 years ago

@tbolon Hi! How you solved this issue?