Prebuilt node-sass for alpine linux not used - node.js

As I understand node-sass packages has a prebuilt binary for Alpine Linux as noted on releases page but for some reason when I run yarn install it tries to compile it from the source.
What could be the reason for that? Is this a yarn bug?
yarn install v1.5.1
warning package.json: No license field
warning emulsify#1.0.0: No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents#1.1.2: The platform "linux" is incompatible with this module.
info "fsevents#1.1.2" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
error An unexpected error occurred: "/var/www/html/node_modules/node-sass: Command failed.
Exit code: 1
Command: sh
Arguments: -c node scripts/build.js
Directory: /var/www/html/node_modules/node-sass
Output:
Building: /usr/local/bin/node /var/www/html/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/local/bin/node',
gyp verb cli '/var/www/html/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library=' ]
gyp info using node-gyp#3.6.2
gyp info using node#9.11.1 | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing \"build\" directory
gyp verb command configure []
gyp verb check python checking for Python executable \"python2\" in the PATH
gyp verb `which` failed Error: not found: python2

I'm posting the answer since a hidden comment isn't good enough for most people :
uninstall NPM and reinstall v8.11, nvm may have upgraded it.

Related

How do I make npm install work when it can't find my python installation?

npm install fails and my goal is to get it to succeed.
I have Python 2 installed, but it is located at /usr/bin/python2 and not /usr/local/bin/python2.
I get the following error message when running npm install.
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library='
gyp verb cli ]
gyp info using node-gyp#3.8.0
gyp info using node#14.2.0 | darwin | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "/usr/local/bin/python2" in the PATH
gyp verb `which` failed Error: not found: /usr/local/bin/python2
What should I do about it?
One of the simplest things you can try is a symlink from the actual location of the python2 executable to the location where npm is expecting it.
# create symlink
ln -s /usr/bin/python2 /usr/local/bin/python2
# test executability of symlink
/usr/local/bin/python2 --version
Once you've created that symlink, retry npm install in your project.

Issues when creating new angular 7 project

Error while creating the new project using angular cli. Tried npm clear cache --force and manually deleted the npm cache folder. None of them worked.
No proxy required for connecting internet
ng new testapp--routing
> node-sass#4.11.0 install C:\Users\user\testapp\node_modules\node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.11.0/win32-x64-72_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.11.0/win32-x64-72_binding.node":
HTTP error 404 Not Found
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.
export HTTP_PROXY=http://example.com:1234
or configure npm proxy via
npm config set proxy http://example.com:8080
> node-sass#4.11.0 postinstall C:\Users\user\testapp\node_modules\node-sass
> node scripts/build.js
Building: C:\Program Files\nodejs\node.exe C:\Users\user\testapp\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli 'C:\\Program Files\\nodejs\\node.exe',
gyp verb cli 'C:\\Users\\user\\testapp\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library='
gyp verb cli ]
gyp info using node-gyp#3.8.0
gyp info using node#12.0.0 | win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed at getNotFoundError ```
Just create new project as:
ng new testapp
Then remove your angular cli and clear cache and please again
npm install -g #angular/cli
And build and run your project.
Sometimes due to global installation of many library you will get the above error. No need to create new project. Please perform the following steps
Step 1: Try to do the npm i again. if you are ending up with error then go to step 2
Step 2: $ npm install -g node-sass
And finally, one last check:
$ node-sass -v
Then perform step 1 again if needed ( optional).
Once the node-sass installation is successful then you wont face this error going forward.
Hope this will help
I was having pretty much the same problem. I'm guessing you are selecting SCSS as the stylesheet format? I got a bit further than you before it ended in compile errors but would not work all the way. I solved my problem by downgrading to node version 11. It seems node-sass 4.11 does not support node version 12. See Error installing node-sass.
The download error is shown because there is no such file. The latest version time of writing at github is win32-x64-67_binding.node.
I also think that you might have a dependency problem with Python. Have a look at node-gyp configuration - windows and make sure you have all the dependencies.
Hope this helps!

Npm install rebuilds .node-gyp upon every install

I'm getting this message upon every npm install:
> fsevents#1.2.4 install /Users/USERNAME/URL/TO/GULP/FILE/node_modules/fsevents
> node install
[fsevents] Success: "/Users/USERNAME/URL/TO/GULP/FILE/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
> node-sass#3.13.1 install /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node":
HTTP error 404 Not Found
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.
export HTTP_PROXY=http://example.com:1234
or configure npm proxy via
npm config set proxy http://example.com:8080
> node-sass#3.13.1 postinstall /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass
> node scripts/build.js
Building: /usr/local/bin/node /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/local/bin/node',
gyp verb cli '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library=' ]
gyp info using node-gyp#3.7.0
gyp info using node#8.11.1 | darwin | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed at getNotFoundError (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:13:12)
gyp verb `which` failed at F (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:68:19)
gyp verb `which` failed at E (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:80:29)
gyp verb `which` failed at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:89:16
gyp verb `which` failed at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/index.js:42:5
gyp verb `which` failed at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/mode.js:8:5
gyp verb `which` failed at FSReqWrap.oncomplete (fs.js:152:21)
gyp verb `which` failed python2 { Error: not found: python2
gyp verb `which` failed at getNotFoundError (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:13:12)
gyp verb `which` failed at F (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:68:19)
gyp verb `which` failed at E (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:80:29)
gyp verb `which` failed at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:89:16
gyp verb `which` failed at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/index.js:42:5
gyp verb `which` failed at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/mode.js:8:5
gyp verb `which` failed at FSReqWrap.oncomplete (fs.js:152:21)
gyp verb `which` failed stack: 'Error: not found: python2\n at getNotFoundError (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:13:12)\n at F (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:68:19)\n at E (/Users/USERNAME/URL/TO/GULP/FILE/node_modules/ which/which.js:80:29)\n at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/which/which.js:89:16\n at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/index.js:42:5\n at /Users/USERNAME/URL/TO/GULP/FILE/node_modules/isexe/mode.js:8:5\n at FSReqWrap.oncomplete (fs.js:152:21)',
gyp verb `which` failed code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python /usr/bin/python
gyp verb check python version `/usr/bin/python -c "import platform; print(platform.python_version());"` returned: "2.7.10\n"
gyp verb get node dir no --target version specified, falling back to host node version: 8.11.1
gyp verb command install [ '8.11.1' ]
gyp verb install input version string "8.11.1"
gyp verb install installing version: 8.11.1
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 8.11.1
gyp verb build dir attempting to create "build" dir: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build
gyp verb build dir "build" dir needed to be created? /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build/config.gypi
gyp verb config.gypi checking for gypi file: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/config.gypi
gyp verb common.gypi checking for gypi file: /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /usr/bin/python
gyp info spawn args [ '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/USERNAME/.node-gyp/8.11.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/USERNAME/.node-gyp/8.11.1',
gyp info spawn args '-Dnode_gyp_dir=/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/USERNAME/.node-gyp/8.11.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp verb command build []
gyp verb build type Release
gyp verb architecture x64
gyp verb node dev dir /Users/USERNAME/.node-gyp/8.11.1
gyp verb `which` succeeded for `make` /usr/bin/make
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
c++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DLIBSASS_VERSION="3.3.6"' -I/Users/USERNAME/.node-gyp/8.11.1/include/node -I/Users/ USERNAME/.node-gyp/8.11.1/src -I/Users/USERNAME/.node-gyp/8.11.1/deps/openssl/config -I/Users/USERNAME/.node-gyp/8.11.1/deps/openssl/openssl/include -I/Users/USERNAME/.node-gyp/8.11.1/deps/uv/include -I/Users/USERNAME/.node-gyp/8.11.1/deps/zlib -I/Users/USERNAME/.node-gyp/8.11.1/deps/ v8/include -I../src/libsass/include -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=c++11 -stdlib=libc++ -fno-threadsafe-statics -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp
^Cmake: *** Deleting file `Release/obj.target/libsass/src/libsass/src/ast.o'
make: *** [Release/obj.target/libsass/src/libsass/src/ast.o] Interrupt: 2
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN GulpFileName#1.0.0 No description
npm WARN GulpFileName#1.0.0 No repository field.
My global installed packages ( npm -g ls --depth=0 ) are these:
/usr/local/lib
├── fsevents#1.2.4
├── gulp#3.9.1
├── gulp-cli#2.0.1
├── jscs#3.0.7
├── n#2.1.8
├── node-gyp#3.7.0
├── node-sass#4.9.0
├── npm#5.10.0
└── vue-cli#2.9.3
The errors come when I run npm install with this package.json-file:
{
"name": "GulpName",
"author": "Johnny Bravo",
"version": "1.0.0",
"license": "GPL-2.0",
"dependencies": {},
"devDependencies": {
"autoprefixer": "^8.6.3",
"browserslist": "^3.2.8",
"gulp": "^4.0.0",
"gulp-concat": "^2.6.1",
"gulp-postcss": "^7.0.1",
"gulp-sass": "^2.0.0",
"gulp-clean-css": "^3.9.4",
"gulp-uglify": "^3.0.0"
},
"browserslist": [
"last 2 version",
"> 1%",
"safari >= 5",
"ie >= 8",
"chrome >= 34",
"ie_mob >= 10",
"opera >= 23",
"ios >= 7",
"ff >= 7",
"android >= 4",
"bb >= 10"
]
}
My attempts:
I tried removing ~/.node-gyp (and then refreshing the cache with npm cache verify).
I tried uninstalling all the 'random' packages I could see with npm -g ls --depth=0. I had some phantomjs and a http-server or something like that.
I tried installing node-gyp, fsevents and node-sass globally, hoping that I shouldn't go through those steps in the install-procedure. But I still get the same long error.
... And obviously I did rm -rf node_modules package-lock.json followed by npm install a bazillion times throughout my attempt of solving this.
I can see several places, something about people who gets similar errors, which is due to some yarn-thingy. I've haven't used any such thing.
Do I really have to endure this tedious and long install-procedure every time I run npm install.
Ok... I figured most of it our myself. The problem was that node-sass had version "~2.0.0", which was too old. When I bumped that up to "4.0.1", then the recompiling of node-gyp went away.
Here was my process, though - for the rookies who want to try some things themselves:
Remember that you have your local packages (in package.json) and your global packages (accessed by writing: npm -g ls --depth=0.
You can remove all of your global packages, by following this answer.
Then remove your devDependencies one at the time, and try running npm install until the stupid error goes away.
I'm still getting this error (which I wont solve, since I decreased my npm install-time by a minute or so, which is enough for me).
> fsevents#1.2.4 install /PATH/TO/PACKAGEJSON-FILE/node_modules/fsevents
> node install
[fsevents] Success: "/PATH/TO/PACKAGEJSON-FILE/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
> node-sass#4.9.0 install /PATH/TO/PACKAGEJSON-FILE/node_modules/node-sass
> node scripts/install.js
Cached binary found at /Users/REDACTED/.npm/node-sass/4.9.0/darwin-x64-57_binding.node
> node-sass#4.9.0 postinstall /PATH/TO/PACKAGEJSON-FILE/node_modules/node-sass
> node scripts/build.js
Binary found at /PATH/TO/PACKAGEJSON-FILE/node_modules/node-sass/vendor/darwin-x64-57/binding.node
Testing binary
Binary is fine
so spent few hours with similar problem. tried with installed node v19,v18,v16 and all other tries like reinstall python node-gyp versions ... solution was to set node v14 and npm install fixed everything!

Error running JHipster Registry

I'm trying to start JHipster Registry by building it from source and for that I'm following Matt Raible's tutorial.
But I'm getting an error with exit code 1 and the following is the generated stack trace.
yarn install v0.27.5
[1/4] Resolving packages...
[2/4] Fetching packages...
warning fsevents#1.1.1: The platform "win32" is incompatible with this module.
info "fsevents#1.1.1" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning "angular2-cookie#1.2.6" has incorrect peer dependency "#angular/common#^2.0.0".
warning "angular2-cookie#1.2.6" has incorrect peer dependency "#angular/core#^2.0.0".
warning "ng2-translate#4.2.0" has incorrect peer dependency "#angular/core#^2.0.0".
warning "ng2-translate#4.2.0" has incorrect peer dependency "#angular/http#^2.0.0".
[4/4] Building fresh packages...
[1/4] ⢀ node-sass: could not find "C:\Users\Srikar\AppData\Local\Programs\Python\Python35\python.EXE". checking
[-/4] ⢀ waiting...
[3/4] ⠠ phantomjs-prebuilt: Receiving...
[-/4] ⠠ waiting...
error D:\JHipster\jhipster-microservices-example\registry\node_modules\node-
sass: Command failed.
Exit code: 1
Command: C:\WINDOWS\system32\cmd.exe
Arguments: /d /s /c node scripts/build.js
Directory: D:\JHipster\jhipster-microservices-example\registry\node_modules\node-sass
Output:
Building: C:\Program Files\nodejs\node.exe D:\JHipster\jhipster-microservices-example\registry\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ 'C:\\Program Files\\nodejs\\node.exe',
gyp verb cli 'D:\\JHipster\\jhipster-microservices-example\\registry\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library=' ]
gyp info using node-gyp#3.6.0
gyp info using node#8.3.0 | win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed at getNotFoundError (D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:13:12)
gyp verb `which` failed at F (D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:68:19)
gyp verb `which` failed at E (D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:80:29)
gyp verb `which` failed at D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:89:16
gyp verb `which` failed at D:\JHipster\jhipster-microservices-example\registry\node_modules\isexe\index.js:42:5
gyp verb `which` failed at D:\JHipster\jhipster-microservices-example\registry\node_modules\isexe\windows.js:36:5
gyp verb `which` failed at FSReqWrap.oncomplete (fs.js:152:21)
gyp verb `which` failed python2 { Error: not found: python2
gyp verb `which` failed at getNotFoundError (D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:13:12)
gyp verb `which` failed at F (D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:68:19)
gyp verb `which` failed at E (D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:80:29)
gyp verb `which` failed at D:\JHipster\jhipster-microservices-example\registry\node_modules\which\which.js:89:16
gyp verb `which` failed at D:\JHipster\jhipster-microservices-example\registry\node_modules\isexe\index.js:42:5
gyp verb `which` failed at D:\JHipster\jhipster-microservices-example\registry\node_modules\isexe\windows.js:36:5
gyp verb `which` failed at FSReqWrap.oncomplete (fs.js:152:21) code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python C:\Users\Srikar\AppData\Local\Programs\Python\Python35\python.EXE
gyp verb check python version `C:\Users\Srikar\AppData\Local\Programs\Python\Python35\python.EXE -c "import platform; print(platform.python_version());"` returned: "3.5.4\r\n"
gyp verb could not find "C:\Users\Srikar\AppData\Local\Programs\Python\Python35\python.EXE". checking python launcher
gyp verb could not find "C:\Users\Srikar\AppData\Local\Programs\Python\Python35\python.EXE". guessing location
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "C:\Users\Srikar\AppData\Local\Programs\Python\Python35\python.EXE", you can set the PYTHON env variable.
gyp ERR! stack at PythonFinder.failNoPython (D:\JHipster\jhipster-microservices-example\registry\node_modules\node-gyp\lib\configure.js:482:19)
gyp ERR! stack at PythonFinder.<anonymous> (D:\JHipster\jhipster-microservices-example\registry\node_modules\node-gyp\lib\configure.js:508:16)
gyp ERR! stack at D:\JHipster\jhipster-microservices-example\registry\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Windows_NT 10.0.16251
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "D:\\JHipster\\jhipster-microservices-example\\registry\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd D:\JHipster\jhipster-microservices-example\registry\node_modules\node-sass
gyp ERR! node -v v8.3.0
gyp ERR! node-gyp -v v3.6.0
gyp ERR! not ok
Build failed with error code: 1
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Steps performed:
1) Download the JHipster Registry from Github as a zip and Unzip it.
2) Navigate to that directory in the Windows PowerShell and run yarn or yarn install.
I'm new to JHipster. I'm not sure whether the issue is with sass or python2 or other. I'm looking for detailed information regarding the issue and how to solve it?
Node Version: 8.3.0
Power Shell Version: 5.1.16251.0
OS ->
Edition: Windows 10 Enterprise Insider Preview
Version: 1703
OS Build: 16251.1002
[As far as I can understand,
i) Warning with fsevents is because I'm using Windows x-64 and fsevents is mainly for Mac to monitor file systems. Is that correct?
ii) Is the registry using Angular 2 for the front-end design? (even though you can build Angular 4 apps with JHispter)
iii) When building fresh packages, node_sass complains it cannot find the python.exe file but I've checked the folder but the file exists. I have python3.5.4 in the path too.
In the subsequent steps, is it looking for python2 because it didn't find python3? If JHipster is a SpirngBoot(back-end) + Angular(front-end) application then where will the python be used? Can we write mild python scripts too?]
i) correct you can ignore this warning
ii) the registry is an app generated by JHipster (you can see its options in .yo-rc.json file) and uses angular 4 for its UI
iii) python is only used for node building not by the app runtime, here the issue is with node-sass that cannot be built and it's an environment issue:
node-gyp requires python 2.x to build native module like node-sass and you have python 3.x, please re-install
JHipster recommends using an LTS version of Node currently 6.x, you're using latest currently 8.x, please consider re-installing.
Now, the bad news is that you are on Windows; best platforms for nodejs are Linux and macOS, Matt Raible is on macOS so he did not encounter all your issues. It's possible that even with fixing your python and nodejs versions node-gyp may fail building native modules. If this happens you have few alternatives:
use jhipster-devbox
don't use sass and select a tutorial that doesn't use it
install MS build tools
I just downgrade NodeJS to 6.x and things started to work out. So, please, try downgrade it and recompile using: yarn.

NPM downloads nodejs each time

I use fedora, so I had nodejs and npm installed from the repos.
But I needed to install SailsJS which asked for newer versioon of npm, so I did a sudo npm install npm -g, but after that installing each package takes a lot of time and in verbose mode I can see that each time nodejs is fetched and compiled (even though my fedora already has the same version installed). Some output :
npm verb linkBins utf-8-validate#1.1.0
npm verb linkMans utf-8-validate#1.1.0
npm verb rebuildBundles utf-8-validate#1.1.0
npm verb rebuildBundles [ 'bindings', 'nan' ]
npm info install utf-8-validate#1.1.0
> utf-8-validate#1.1.0 install /lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild
gyp info it worked if it ends with ok
gyp verb cli [ 'node',
gyp verb cli '/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli 'rebuild' ]
gyp info using node-gyp#2.0.2
gyp info using node#0.10.36 | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` succeeded python2 /bin/python2
gyp verb check python version `python2 -c "import platform; print(platform.python_version());"` returned: "2.7.10\n"
gyp verb get node dir no --target version specified, falling back to host node version: v0.10.36
gyp verb command install [ 'v0.10.36' ]
gyp verb install input version string "v0.10.36"
gyp verb install installing version: 0.10.36
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.36"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate/.node-gyp"
gyp verb command install [ 'v0.10.36' ]
gyp verb install input version string "v0.10.36"
gyp verb install installing version: 0.10.36
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version not already installed, continuing with install 0.10.36
gyp verb ensuring nodedir is created /lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate/.node-gyp/0.10.36
gyp verb created nodedir /lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate/.node-gyp
gyp http GET https://nodejs.org/dist/v0.10.36/node-v0.10.36.tar.gz
gyp http 200 https://nodejs.org/dist/v0.10.36/node-v0.10.36.tar.gz
gyp verb extracted file from tarball deps/zlib/zlib.h
gyp verb extracted file from tarball deps/zlib/deflate.h
gyp verb extracted file from tarball deps/zlib/inflate.h
gyp verb extracted file from tarball deps/zlib/zutil.h
gyp verb extracted file from tarball deps/zlib/examples/gzlog.h
gyp verb extracted file from tarball deps/zlib/crc32.h
gyp verb extracted file from tarball deps/zlib/inffast.h
gyp verb extracted file from tarball deps/zlib/trees.h
gyp verb extracted file from tarball deps/zlib/gzguts.h
Your issue seems to have the solution proposed here :https://github.com/TooTallNate/node-gyp/issues/610
Basically you have to download node v0.10.36 in the .node-gyp directory.

Resources