1

ネイティブ モジュールContextifyに依存しているため、JSDom に依存する nodejs アプリを Azure で動作させるのに問題があります。Azureはネイティブ モジュールのコンパイルを提供していないことを理解しています。

ただし、Azureのドキュメントによると

Windows Azure クラウド サービスは、アプリケーションの一部として展開される node_modules フォルダーに依存しているため、インストールされたモジュールの一部として含まれるネイティブ モジュールは、Windows 開発システムにインストールおよびコンパイルされている限り、クラウド サービスで動作するはずです。

npm のインストール中にコンパイルされるため、開発ボックスではすべて正常に動作しますが、コンパイルされたバージョンを提供しているときに Azure で動作しない理由がわかりません。Windows dev ボックスで動作する場合、コンパイルは明らかに成功しています。ローカル git リポジトリから azure フォームにデプロイするので、コミット時にコンパイル済みファイルが除外されているのではないかと考えています。

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 に答える