2016-03-23 20 views
0

BitBucket経由でAzure Web Appsにnode.js APIをデプロイしようとしています。このプロセスは、インストール後にコンパイルする必要のあるプライベートレポを追加するまでうまくいきました。Azure: 'npm'が内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されないのはなぜですか

私はpostinstall-build npmパッケージを使用して、インストール後のbabel-cliを実行してes2015コードをプライベートnpmリポジトリのes5にコンパイルします。

これは私の開発マシンでは完全に機能しますが、文字通り他のパッケージをインストールしているにもかかわらず、Azureはいくつかの理由でnpmを認識しません。

は、ここでのログの一部です:

...  
> [email protected] install D:\home\site\wwwroot\node_modules\dtrace-provider 
    > node scripts/install.js 


    > [email protected] postinstall D:\home\site\wwwroot\node_modules\private-repo 
    > postinstall-build lib 'npm run compile' 

    { [Error: Command failed: 'npm 
    ''npm' is not recognized as an internal or external command, 
    operable program or batch file. 
    ] killed: false, code: 1, signal: null, cmd: '\'npm' } 
    [email protected] D:\home\site\wwwroot 
    npm ERR! Windows_NT 6.2.9200 
... 

そして、ここでpackage.json

"postinstall": "postinstall-build lib 'npm run compile'" 

から "インストール後" スクリプトと "コンパイル" スクリプトです:

"compile": "babel --presets es2015,stage-0 --plugins add-module-exports -d lib/ src/", 

だから私たちが "postinstall"スクリプトを実行しているという点に着目すると、npmは間違いなくそこにあります物事をやっているのですが、 "postinstall"スクリプトを実行する何らかの理由で、別のシェルなどで実行する必要があります。

他に誰かがこれに遭遇しましたか?

+0

npmのフルパスを指定すると役立ちますか? '' D:\ Program Files(x86)\ npm'''からnpmのサポートされているすべてのバージョンを取得できます。 –

+0

これを試してみてください...意味があります。これはAzure Web Appのnpmへの正しいパスですか? – SomethingOn

+0

これはフォルダーです。その下にサポートされているNPMのリストがあります。 http:// {yourname} .scm.azurewebsites.net/DebugConsoleに行き、それにナビゲートすると、それらのすべてが表示されます。 –

答えて

0

プライベートレポジトリからノードモジュールをインストールする場合は、BitBucketにSSH deploy keyを設定することができます.Kudu WikiのFor private repos, set up a deploy keyセクションを継続して展開し、BitBucketで展開キーを使用する図を参照してください。

enter image description here

+0

ありがとう、私はリポジトリをプルできるSSHキーを追加しましたが、問題はリポジトリがインストールされ、ポストインストールスクリプトが実行された後です – SomethingOn

関連する問題