web-dev-qa-db-fra.com

Sortie de l'application principale ASP.NET: la commande "npm install" s'est terminée avec le code 9009

J'ai une solution ASP.NET Core avec une interface React. J'ai maintenant un problème, je ne peux pas publier le code à l'aide de la fenêtre de publication normale dans Visual Studio. Je publie dans une application Web dans Azure Web applications, et cela fonctionne parfaitement pour toutes mes autres solutions construites de la même manière.

Le code fonctionne parfaitement localement, et je peux exécuter npm install localement sans problèmes.

L'erreur provient évidemment d'un fichier introuvable lors de la publication. Dans mon dossier de projet, j'ai débogué et j'ai découvert que c'était le défi:

 <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>

Erreur dans 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  

Si je commente les trois premières lignes (npm install et les deux webpacks), je peux publier la solution mais sans travailler JavaScript évidemment.

Aucune idée sur la façon de résoudre ça? Et au moins, comment mieux le déboguer?

Erreur visuelle dans Visual Studio :

enter image description here

Le fichier journal référencé dans l'interface graphique:

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.<---

===================
6
Lars Holdgaard

C'était donc embarrassant mais potentiellement utile pour les futurs Googleurs.

Le problème sous-jacent était assez simple: c'était un nouvel ordinateur qui n'avait pas Node.js (ou NPM) installé. Cela rend le message d'erreur très utile: node est introuvable!

La solution est simple: installez Node.js, assurez-vous qu'il se trouve dans votre CHEMIN et redémarrez votre ordinateur. Ensuite, vous résoudrez ce problème.

13
Lars Holdgaard