在Cloudfoundry'无效的ELF头部'

我正在部署一个node.js应用程序到Cloudfoundry,唯一的模块依赖关系是restify。 我试着用我的本地node_modules目录来推送它,并且在cloudfoundry.json中使用npm shrinkwrap和'ignoreModules',但是总是以stdout.log结尾:

{ stack: [Getter/Setter], arguments: undefined, type: undefined, message: '/var/vcap/data/dea/apps/myapp-0-6f9cf62f9bbe58f5d2eb13a94acb5d3a/app/node_modules/restify/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.node: invalid ELF header' } 

有任何想法吗? 提前致谢 :)

编辑:对不起,我的意思是“忽略* 节点 *模块”

我的猜测是这个模块是为你的本地体系结构(比如说x86)编译的,而试图运行它的服务器是一个不同的体系结构(比如64位)。 节点模块可以在其中包含C ++扩展,npm将处理构build,您不一定只需将node_modules文件夹中的二进制文件从一个平台移动到另一个平台,则需要重新编译它们。

我不太了解Cloudfoundry,告诉你怎么做,但希望别人有更好的答案。

我有一个类似的问题,build立一个开发Docker环境。 我想将我的源文件安装在docker镜像上,但是只为docker镜像编译了一个node_modules目录。 当我在Docker镜像上创build一个新目录时, npm install在那个目录下,然后用我的一些源代码的软链接看到了同样的行为。

解决scheme:不要使用软链接。