Node.js 根据错误的节点模块版本编译节点gyp

Node.js 根据错误的节点模块版本编译节点gyp,node.js,docker,npm,node-gyp,Node.js,Docker,Npm,Node Gyp,我已经建立了一个Gitlab CI管道,它在第一阶段编译一个本地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 虽然这两个阶段

我已经建立了一个Gitlab CI管道,它在第一阶段编译一个本地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.
降级nodejs版本会使错误消失:
在Dockerfile中:

RUN n 8.15.0

如何针对nodejs的LTS版本(目前为10.15.1)编译我的本机插件

可能编译没有完成,因为和现有的模块。尝试对旧模块使用“重建”然后“清理”

node-gyp configure --target=$(node --version)
node-gyp rebuild
node-gyp clean

希望这有帮助

有什么答案吗?我也需要答案
node-gyp configure --target=$(node --version)
node-gyp rebuild
node-gyp clean