据我所知,一些 node.js 模块依赖于本地操作系统库的支持,例如 node-imagimagick。
但是这个问题困扰了我一段时间。
在一个 Linux(例如 Ubuntu)中说我有一个 nodejs 应用程序,所有依赖项都是通过 npm install
下载的,nodejs 应用程序连同依赖项可以简单地复制到另一个操作系统(不同linux 发行版,例如 Redhat)并顺利运行,假设后者需要本地库。
会不会有兼容性问题?
我认为真正的问题是 npm install
做了什么?它是构建操作系统特定的二进制代码还是只下载 javascript 库。
最佳答案
与 imagemagick 示例一样,某些 npm 模块可能具有应用程序外部的依赖项。例如,一个 ZeroMQ npm 模块不会包含一个 ZeroMQ 二进制文件(或者不应该)。
如果您想要 Linux 发行版之间的完全可移植性,您可以考虑使用 Docker 容器。例如,您可以让您的 Dockerfile 满足所有先决条件(例如安装 ZeroMQ),然后让您的 Node 应用程序在该容器内运行。这样你就可以确定你正在使用的所有 npm 模块都可以像在你的 linux 发行版上一样工作。
关于javascript - Nodejs 模块是否可以跨不同的 Linux 发行版移植?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27863954/