Zeth
Zeth

Reputation: 2618

Npm install rebuilds .node-gyp upon every install

I'm getting this message upon every npm install:

> [email protected] 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

> [email protected] 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

> [email protected] 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 [email protected]
gyp info using [email protected] | 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 [email protected] No description
npm WARN [email protected] No repository field.    

My global installed packages ( npm -g ls --depth=0 ) are these:

/usr/local/lib
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

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:

... 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.

Upvotes: 5

Views: 25161

Answers (2)

Nezir
Nezir

Reputation: 6925

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!

Upvotes: 0

Zeth
Zeth

Reputation: 2618

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:

  1. Remember that you have your local packages (in package.json) and your global packages (accessed by writing: npm -g ls --depth=0.

  2. You can remove all of your global packages, by following this answer.

  3. 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).

> [email protected] 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

> [email protected] 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

> [email protected] 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

Upvotes: 8

Related Questions