1

我无法让依赖于 JSDo 的 nodejs 应用程序在 Azure 上工作,因为它依赖于本机模块 - Contextify,我了解 Azure 不提供本机模块的编译。

但是根据Azure 文档

由于 Windows Azure 云服务依赖于作为应用程序一部分部署的 node_modules 文件夹,因此作为已安装模块的一部分包含的任何本机模块都应该在云服务中工作,只要它是在 Windows 开发系统上安装和编译的。

它在我的开发盒上运行良好,因为它是在 npm 安装期间编译的,我不明白为什么它不能在 Azure 上运行,因为我提供了编译版本?如果它适用于我的 Windows 开发盒,则编译显然是成功的。我从本地 git 存储库部署到天蓝色,所以我想知道当我提交时编译的文件是否被遗漏了?

4

1 回答 1

0

更新:最新的 Azure 版本(特别是移动服务后端)支持任意 NPM 模块 -请参阅移动服务部分:NPM 模块支持

来自 npm 上的 JSDom 文档:

不幸的是,做这种魔术需要 C++。在 Node.js 中,使用 JavaScript 中的 C++ 意味着使用“本机模块”。本机模块在安装时编译,以便它们精确地为您的机器工作;也就是说,您无需从 npm 下载 contextify 二进制文件,而是在从 npm 下载源代码后在本地构建一个。

https://npmjs.org/package/jsdom#contextify

由于您的“本机模块”与 azure 的“本机模块”中的任何机器都没有相同的签名,因此它不会加载。

于 2013-05-12T21:19:55.613 回答