mxc*_*xcd 9 node.js npm node-gyp docker
我已经建立了一个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
Run Code Online (Sandbox Code Playgroud)
尽管两个阶段都在同一个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.
Run Code Online (Sandbox Code Playgroud)
即使以当前nodejs版本的形式为node-gyp提供所需的目标,也不会更改此设置:
node-gyp configure --target=$(node --version)
node-gyp build --target=$(node --version)
Run Code Online (Sandbox Code Playgroud)
降级nodejs版本会使错误消失:
在Dockerfile中:
RUN n 8.15.0
Run Code Online (Sandbox Code Playgroud)
如何针对LTS版本的nodejs(当前为10.15.1)编译本机插件
也许编译未完成,因为现有模块。尝试使用重建,然后清理旧模块。
node-gyp configure --target=$(node --version)
node-gyp rebuild
node-gyp clean
Run Code Online (Sandbox Code Playgroud)
希望这有帮助
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |