Не удается установить Node Serialport на немецкой Win7

Я пытаюсь установить наш последовательный виджет Node, который позволяет сайту, обслуживаемому PHP, взаимодействовать как с последовательными портами локальной машины, так и с нашим удаленным сервером (с MariaDB). Сайт, на который я пытаюсь установить, находится в Германии (но находится в нашем домене, поэтому я вижу их, как если бы они были местными). Хотя есть задержка, пока я работаю на машине из Сиэтла, я могу делать все, что мне нужно, отсюда через VNC Viewer.

Мы успешно развернули это программное обеспечение примерно на дюжине наших локальных (район Сиэтла) компьютеров службы, но все они являются 64-разрядными машинами Win7 Pro, которые по умолчанию являются англоязычными версиями Windows. Эта машина представляет собой 32-битную немецкую сборку Win7 Pro с использованием английского языкового пакета. Я не знаю, уместно ли это, но единственные две переменные, похоже, 32-битная и немецкая Windows. Мы успешно выполнили тестовую установку с использованием 32-разрядной виртуальной машины, поэтому, похоже, дело в немецкой Windows, если только я не упустил что-то еще.

Вот что я сделал:

Я успешно установил:

  • Node.js 6.9.5

  • НПМ 3.10.10

  • Питон 2.7.13

  • Инструменты сборки Windows из инструкций, которые можно найти здесь.

  • Инструменты сборки Visual Studio для VS 2015 (также пробовали с VS 2013)

  • Узел гип

  • предварительное гип узла

Затем я попытался внести следующие изменения конфигурации:

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

Никаких изменений в ошибке.

Вот наш 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"
  }
}

Я также пытался установить serialport.js отдельно с теми же ошибками. Ни одна из других наших зависимостей не вызывает проблем, но без serialport.js программное обеспечение бесполезно.

Ничто из этого не сработало, и я все еще получаю ошибки, описанные ниже (извините, что это длинно). Исходная ошибка, кажется, находится на 5-й строке текста:

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

person delliottg    schedule 07.02.2017    source источник


Ответы (1)


Это на самом деле не столько решено, сколько обходится. Пожалуйста, см. сопровождающее обсуждение на Github с ребятами из Serialport. Здесь ссылки для каждого из пунктов обсуждения ниже, которые можно найти там. По-прежнему требуется несколько часов возни, чтобы наше программное обеспечение было установлено и функционировало даже со связанной информацией.

В основном это сводится к:

  • Загрузите и установите соответствующую версию Node.js.
  • Сделайте некоторую настройку npm
  • Установите и соберите все зависимости для node-gyp вместе с инструментами сборки Python 2.7x и Windows.
  • Установите и соберите все зависимости для node-pre-gyp.

Возможно, это поможет кому-то еще, кто столкнулся с аналогичными проблемами при установке 32-разрядной Windows, для которой требуется подключаемый модуль Serialport.

person delliottg    schedule 17.02.2017