web-dev-qa-db-ja.com

ASP.NETコアアプリのリリース:コマンド「npm install」はコード9009で終了しました

ReactフロントエンドのASP.NET Coreソリューションがあります。VisualStudio内の通常のリリースウィンドウを使用してコードをリリースできないという問題が発生しました。AzureWeb内のWebアプリに公開しますアプリ、それは同じ方法で構築された他のすべてのソリューションで完全に機能します.

コードはローカルで完全に動作し、npm installをローカルで問題なく実行できます。

エラーは明らかに、公開時に見つからないファイルに起因します。私のプロジェクトファイルでは、デバッグしていて、これが課題であることがわかりました。

 <Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
    <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
    <Exec Command="npm install" />
    <Exec Command="node node_modules/webpack/bin/webpack.js --config webpack.config.vendor.js --env.prod" />
    <Exec Command="node node_modules/webpack/bin/webpack.js --env.prod" />

    <!-- Include the newly-built files in the publish output -->
    <ItemGroup>
      <DistFiles Include="wwwroot\dist\**" />
      <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
        <RelativePath>%(DistFiles.Identity)</RelativePath>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </ResolvedFileToPublish>
    </ItemGroup>
  </Target>

Visual Studioのエラー

Severity    Code    Description Project File    Line    Suppression State
Error       The command "npm install" exited with code 9009.    Likvido.CreditRisk  C:\Users\MYNAME\Documents\Github\Likvido.CreditRisk\Likvido.CreditRisk\Likvido.CreditRisk\Likvido.CreditRisk.csproj 75  

最初の3行(npm installと2つのWebパック)をコメント化すると、ソリューションを公開できますが、JavaScriptを動作させる必要はありません。

これを解決する方法はありますか?そして、少なくとも、それをよりよくデバッグする方法は?

Visual Studioのビジュアルエラー

enter image description here

GUIで参照されるログファイル:

09/04/2018 11.07.03
System.AggregateException: One or more errors occurred. ---> System.Exception: Publish failed due to build errors. Check the error list for more details.
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass40_0.<PublishAsync>b__2()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__88.MoveNext()
---> (Inner Exception #0) System.Exception: Publish failed due to build errors. Check the error list for more details.<---

===================
7
Lars Holdgaard

したがって、これは恥ずかしいことでしたが、将来のGoogle社員にとって潜在的に有用でした。

根本的な問題は非常に単純でした。それは、Node.js(またはNPM)がインストールされています。これにより、エラーメッセージが非常に役立ちます。nodeが見つかりませんでした!

解決策は簡単です:インストールNode.js、PATHに含まれていることを確認して、コンピューターを再起動します。次に、この問題を解決します。

14
Lars Holdgaard