1

「socket.io-servicebus」モジュールを node.js アプリケーションに使用したいと考えています。

しかし、私はその問題に遭遇しました。「socket.io-servicebus」をインストールした後、「Publish-AzureServiceProject」コマンドで cloud_package.cspkg ファイルが作成されませんでした。

Windows7 64bit版で「Windows Azure PowerShell」を使用しています。

手順は次のとおりです。

  • 新しい AzureServiceProject test1
  • 追加 AzureNodeWebRole www
  • CDwww
  • npm install socket.io-servicebus
  • Publish-AzureServiceProject -ServiceName xxx ...

    [ cloud_package.cspkg は作成されません]

ちなみに "Start-AzureEmulator -Launch"は成功し、自分のアプリケーションをテストできます。

アドバイスをお願いします。ありがとうございました。

4

1 に答える 1

-1

ここでの問題は、既知のパスの長さの制限によるものと思われます。Azure には、パッケージ内のパスが 255 文字を超えるという制限があり、この場合、すべての依存関係を使用して socket.io を取り込むと、そのパスにヒットします。

ここにはいくつかの回避策があります。

A. - ノード モジュールを圧縮し、サーバー上で展開します。

基本的には、モジュールを圧縮して、パッケージ内でモジュールの zip を公開します。次に、サーバーで Azure スタートアップ タスク (cscfg 内) を使用して、ファイルを解凍できます。

Publish-AzureServicePackage はプロジェクト内のすべてのものを取得するため、この場合は発行前に実行する小さなスクリプトを使用して、node_modules アーカイブを作成し、node_modules を削除します。

これについてはブログ投稿を計画していますが、実際には比較的簡単に実行できます。

B. - ノード モジュールを動的にダウンロードする

クラウドでモジュールをダウンロードできます。これは、ここに示すように、スタートアップ タスクでも実行できます。

その投稿を見ると、アーカイブ ルートを実行することにした場合にスタートアップ タスクを作成する方法がわかります。

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-05-17T22:29:06.587 に答える