2016-08-03 5 views
0

私の会社はnpmというプライベートスコープのモジュール、つまり@mycompanyscope/mymoduleで始まるモジュールを持っています。デフォルトでは、すべてのNPMでのモジュールをスコープあなたはスコープのモジュールがpackage.jsonにスコープを持つプロパティnameを持っている必要がありますMicrosoft Azure Webサイトにnpmスコープモジュールをインストールする方法

npm login 
Username:myusername 
Password:********** 
npm publish 

を公開する前に、最初にログインする必要がありますので、プライベートで:

{ 
    "name": "@mycompanyscope/mymodule" 
} 

privateキーを削除する必要があります。

はできるだけ早くあなたがあなたの$HOMEフォルダ内の.npmrcファイルにtokenを取得ログインとして、それはこの時点で

//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000 
scope=mycompanyscope 

のようなものですすべてが適切にこのマシンでpublishinstallに設定されます。他のユーザーへのアクセスを許可すると、マシン上でnpm loginを実行してそこから作業するトークンを取得できます。

問題はサーバーによって異なります。 Herokuでは、説明したように動作するはずですhere

私のサーバー環境はAzure Webサイトです。いくつかの文書によると、展開段階では.npmrcファイルをAzureにアップロードする必要があります。そのマシンのトークンを取得する方法があれば、それはすばらしいことになります。私はKudu PowerShellにログインしようとした場合 、実際には、私はちょうどログインできないということです、ログインプロセスは、いくつかの点でハング:

Kudu Remote Execution Console 
Type 'exit' then hit 'enter' to get a new powershell process. 
Type 'cls' to clear the console 

PS D:\home> npm login 
Username: mycompany 
Password: ********* 
Email: (this IS public) [email protected] 

私はこのマシンから任意のトークンを生成することができないようにします。だから私はnpm installをプライベートスコープのモジュールで正しく動作させるためにここにアクセス権を与えることができますか?

[UPDATE]の答えに おかげで、私は(package.jsonがある)プロジェクトのルートフォルダに.npmrcファイルを作成し、NPMはAzureのWebサイトへのモジュールを(@ mycompanyscope/MyModuleという)スコープ展開することができたの下にその後、そこnpm login後に得られたトークンを書き、そしてnpmjs.orgレジストリにregistryを追加:

//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000 
scope=mycompanyscope 
@mycompanyscope:registry=https://registry.npmjs.org/ 

答えて

1

あなたは.npmrcフィルを生成するために、ローカルマシン上でプライベートNPMレジストリをnpm loginしようとしたことがありeをnode.jsアプリケーションで実行し、アプリケーションとともにAzure Web Appにデプロイします。

詳細については、https://blog.maartenballiauw.be/post/2015/10/13/working-with-a-private-npm-registry-in-azure-web-apps.htmlを参照してください。

更新やその他の問題がございましたら、お気軽にお知らせください。

+0

ご提案いただきありがとうございます。あなたが言及している解決策は 'mypm'を使って' npm private registry'をホストしています。これを '.npmrc'ファイルに' npm install --save --registry https://www.myget.org/ F/demo-site/npm/'を実行していますが、' npmjs.com'専用モジュールを使用しています。私の '.npmrc'にレジストリを追加する例はありません。 – loretoparisi

+1

同じことですが、 'npm login'コマンドを実行したときのデフォルトのレジストリURLは' registry.npmjs.org'です。また、https://www.npmjsの説明に従ってください。com/settings/tokensを使用している場合、Azure Web Apps環境にプライベートモジュールをダウンロードさせるために、このページにauthトークンを設定した '.npmrc'を手動で作成することができます。 –

+0

これが解決策であることを確認します。ありがとうございました。私は質問を更新しました。 – loretoparisi

関連する問題