Nodejs模块是否可以在不同的Linux发行版中移植?

时间:2015-01-09 15:32:12

标签: javascript linux node.js npm

据我所知,某些node.js模块依赖于本机OS库支持,如node-imagimagick。

但这个问题困扰了我一段时间。

在一个Linux中说(例如Ubuntu)我有一个nodejs应用程序,通过npm install下载了所有依赖项,nodejs app和依赖项可以简单地复制到另一个OS(不同的linux发行版) ,例如Redhat)并且运行顺利,假设后者需要本机库。

是否存在任何兼容性问题?

我认为真正的问题是npm install做了什么?它是否构建了特定于操作系统的二进制代码,或者只是下载了javascript库。

1 个答案:

答案 0 :(得分:0)

与imagemagick示例一样,某些npm模块可能具有应用程序外部的依赖项。例如,ZeroMQ npm模块不包含ZeroMQ二进制(或不应该)。

如果您希望Linux发行版之间完全可移植,可以考虑使用Docker容器。例如,您可以让您的Dockerfile满足所有先决条件(例如,安装ZeroMQ),然后让您的节点应用程序在该容器内运行。通过这种方式,您可以确保所使用的所有npm模块都可以在Linux发行版上运行。