我已经建立了一个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版本的形式为node-gyp提供所需的目标,也不会改变这一点:
node-gyp configure --target=$(node --version)
node-gyp build --target=$(node --version)
降级nodejs版本会使错误消失:
在Dockerfile中:
RUN n 8.15.0
我如何针对LTS版本的nodejs(当前为10.15.1)编译本机插件
答案 0 :(得分:1)
也许编译没有完成,因为和现有模块有关。尝试使用重建,然后清理旧模块。
node-gyp configure --target=$(node --version)
node-gyp rebuild
node-gyp clean
希望获得帮助