React フロントエンドを備えた ASP.NET Core ソリューションがあります。現在、Visual Studio 内の通常のリリース ウィンドウを使用してコードをリリースできないという問題が発生しています。Azure Web アプリ内の 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 行 (および 2 つの webpack) をコメント アウトするとnpm install
、ソリューションを公開できますが、当然ながら JavaScript は動作しません。
これを解決する方法はありますか? 少なくとも、これをより適切にデバッグする方法はありますか?
Visual Studio のビジュアル エラー:
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.<---
===================
ベストアンサー1
これは恥ずかしいことでしたが、将来の Google 社員にとって役立つ可能性があります。
Node.js
根本的な問題は非常に単純でした。それは、 (または) がインストールされていない新しいコンピュータでしたNPM
。そのため、エラー メッセージは非常に役立ちます:node
が見つかりませんでした。
解決方法は簡単です。 をインストールしNode.js
、PATH にあることを確認して、コンピューターを再起動します。そうすれば、この問題が解決します。