компиляция узла - против неправильного NODE_MODULE_VERSION - PullRequest
0 голосов
/ 07 февраля 2019

Я настроил конвейер CI Gitlab, который на первом этапе компилирует нативный аддон nodejs и запускает с ним несколько тестов на втором.Задание выполняется на том же образе Docker:

FROM ubuntu:18.04
RUN apt update
RUN apt install -y git cmake gcc build-essential nodejs npm curl
RUN npm i -g n
RUN n latest
RUN npm i -g node-gyp
RUN npm i -g yarn

Хотя оба этапа выполняются на одном и том же образе Docker, при выполнении теста появляется следующее сообщение об ошибке:

Error: The module '<path_to_module>'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 57.

Даже указание для node-gyp нужной цели в форме текущей версии nodejs не меняет этого:

node-gyp configure --target=$(node --version)
node-gyp build --target=$(node --version)

Понижение версии nodejs приводит к исчезновению ошибки:
В файле Docker:

RUN n 8.15.0

Как мне скомпилировать родную надстройку для LTS-версии nodejs (в настоящее время 10.15.1)

...