Search code examples
node.jswindowsnode-gypnode-serialport

Can't install Node Serialport on German Win7


I'm trying to install our Node serial widget which allows a PHP served site to talk to both the local machine's serial ports, and our remote server (with MariaDB). The site I'm trying to install to is located in Germany (but is on our domain, so I can see them as if they're local). While there's lag while I'm working on the machine from the Seattle area, I can do whatever I need to from here over VNC Viewer.

We have successfully deployed this software to roughly a dozen of our local (Seattle area) Service computers, but they're all 64 bit Win7 Pro machines that are default English versions of Windows. This machine is a 32 bit German build of Win7 Pro using the English language pack. I don't know if that's pertinent, but the only two variables seem to be 32 bit & German Windows. We've done test installs using 32 bit VM successfully, so it seems to be down to the German Windows, unless I'm missing something else.

Here's what I've done:

I've successfully installed:

  • Node.js 6.9.5

  • NPM 3.10.10

  • Python 2.7.13

  • Windows build tools from the instructions found here.

  • Visual Studio build tools for VS 2015 (also tried with VS 2013)

  • Node gyp

  • Node pre-gyp

Then I tried making these configuration changes:

$ npm config set msvs_version 2015
$ set VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140

No change to the error.

Here's our package.json:

{
  "name": "sbeserialwidget",
  "version": "0.0.1",
  "description": "",
  "main": "server.js",
  "directories": {
    "test": "test"
  },
  "scripts": {
    "test": "node_modules\\.bin\\mocha --reporter spec"
  },
  "license": "ISC",
  "dependencies": {
    "chai": "^3.5.0",
    "dns": "^0.2.2",
    "express": "^4.14.0",
    "fs-extra": "^0.30.0",
    "mocha": "^3.0.2",
    "moment": "^2.15.1",
    "os": "^0.1.1",
    "request": "^2.74.0",
    "serialport": "^4.0.1",
    "socket.io": "^1.4.8",
    "username": "^2.2.2"
  }
}

I've also tried to install serialport.js standalone, with the same errors. None of our other dependencies seem to be problematic, but without serialport.js, the software is useless.

None of this has worked and I'm still getting the errors detailed below (sorry it's kinda long). The initial error seems to be on the 5th line of text:

node-pre-gyp ERR! Tried to download(undefined): https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v48-win32-ia32.tar.gz*:

C:\Program Files\Sea-Bird\sbSerialWidget>npm install

> [email protected] install C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(undefined): https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v48-win32-ia32.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v48 ABI) (falling back to source compile with node-gyp)

C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" clean )  else (node "" clean)

C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" configure --fallback-to-build "--module=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release\serialport.node" --module_name=serialport "--module_path=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release" --python=C:\Users\SeabirdUSA\.windows-build-tools\python27\python.exe --msvs_version=2015 )else (node "" configure --fallback-to-build"--module=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release\serialport.node" --module_name=serialport "--module_path=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release" --python=C:\Users\SeabirdUSA\.windows-build-tools\python27\python.exe --msvs_version=2015 )
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: self signed certificate in certificate chain
gyp ERR! stack     at Error (native)
gyp ERR! stack     at TLSSocket.<anonymous> (_tls_wrap.js:1079:38)
gyp ERR! stack     at emitNone (events.js:86:13)
gyp ERR! stack     at TLSSocket.emit (events.js:185:7)
gyp ERR! stack     at TLSSocket._finishInit (_tls_wrap.js:603:8)
gyp ERR! stack     at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:433:38)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\Program Files\\Sea-Bird\\sbSerialWidget\\node_modules\\serialport\\build\\Release\\serialport.node" "--module_name=serialport" "--module_path=C:\\Program Files\\Sea-Bird\\sbSerialWidget\\node_modules\\serialport\\build\\Release" "--python=C:\\Users\\SeabirdUSA\\.windows-build-tools\\python27\\python.exe" "--msvs_version=2015"
gyp ERR! cwd C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport
gyp ERR! node -v v6.9.5
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'node-gyp.cmd configure --fallback-to-build --module=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release\serialport.node --module_name=serialport --module_path=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release --python=C:\Users\SeabirdUSA\.windows-build-tools\python27\python.exe --msvs_version=2015' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\node_modules\node-pre-gyp\lib\util\com
pile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:106:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:877:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
node-pre-gyp ERR! System Windows_NT 6.1.7601
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\Sea-Bird\\sbSerialWidget\\node_modules\\serialport\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport
node-pre-gyp ERR! node -v v6.9.5
node-pre-gyp ERR! node-pre-gyp -v v0.6.32
node-pre-gyp ERR! not ok
Failed to execute 'node-gyp.cmd configure --fallback-to-build --module=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release\serialport.node --module_name=serialport --module_path=C:\Program Files\Sea-Bird\sbSerialWidget\node_modules\serialport\build\Release --python=C:\Users\SeabirdUSA\.windows-build-tools\python27\python.exe --msvs_version=2015' (1)
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.9.5
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the serialport package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs serialport
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls serialport
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Program Files\Sea-Bird\sbSerialWidget\npm-debug.log

Solution

  • This hasn't really been resolved so much as worked around. Please see accompanying discussion on Github with the Serialport guys. There are links for each of the discussion points below to be found there. It still takes a couple of hours of fiddling to get our software installed and functional even with the linked information.

    Basically it comes down to:

    • Download and install the appropriate version of Node.js.
    • Do some configuration to npm
    • Install and build all the dependencies for node-gyp along with Python 2.7x & Windows Build tools.
    • Install and build all the dependencies for node-pre-gyp.

    Maybe this'll help someone else who's run into similar issues with 32 bit Windows installs that require the Serialport plug in.