1
votes

Agent de build Azure Devops VSTS utilisant une version différente de Node

Localement, le projet que j'ai fonctionne correctement et la commande npm install se termine avec succès. J'utilise Node 11.5 et le chargeur de fichiers récemment installé sans problème.

Cependant, lorsque j'ai poussé la construction vers VSTS et qu'il a exécuté la commande `` npm install '', j'ai remarqué dans la sortie du journal que pour une raison quelconque, il utilisait Node 12.13 alors que jusqu'à présent, il s'agissait de Node 11.5. La commande n'a pas abouti et a échoué avec les éléments suivants:

gyp ERR! build error 
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 
1
gyp ERR! stack     at ChildProcess.onExit 
(D:\a\1\s\Navico.Global\Navico.Global.Web\node_modules\node- 
gyp\lib\build.js:262:23)
   gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit 
 (internal/child_process.js:272:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" 
"D:\\a\\1\\s\\Navico.Global\\Navico.Global.Web\\node_modules\\node- 
gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "-- 
libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
 gyp ERR! cwd D:\a\1\s\Navico.Global\Navico.Global.Web\node_modules\node- 
sass
gyp ERR! node -v v12.13.0
gyp ERR! node-gyp -v v3.8.0
 gyp ERR! not ok 
Build failed with error code: 1
npm verb lifecycle node-sass@4.10.0~postinstall: unsafe-perm in lifecycle true

Ce que j'ai essayé jusqu'à présent:

  • Validez package-lock.json car ne l'a pas validé au début.
  • Mise à jour de Node-sass de 4.9 à 4.10.
  • Ajout d'un chargeur de fichiers aux dépendances dans package.json.

Je suppose que quelque chose récemment ajouté (file-loader) fait que quelque chose indique à l'agent de compilation sur VSTS d'utiliser Node 12.13 au lieu de 11.5 mais je ne sais pas où chercher. Je suis nouveau sur VSTS J'ai déjà utilisé TeamCity et si jamais nous avions des problèmes avec les agents de build, nous pourrions simplement accéder à distance à l'agent et résoudre le problème, mais je ne sais pas comment / si cela est possible dans VSTS.

Toute aide sera fortement appréciée!

Merci, James


0 commentaires

3 Réponses :


1
votes

Si vous voulez être sûr de la version du nœud qui est utilisée lors de votre construction, ajoutez la tâche 'Node.js tool Installer'. dans la tâche, vous pouvez définir la version exacte du nœud qui sera utilisée. cela garantira que votre build s'exécutera de manière plus prévisible à l'avenir, quelles que soient les modifications apportées à la version par défaut utilisée par les agents Microsoft.

entrez la description de l'image ici


1 commentaires

Vous avez raison! J'étais sur le point de venir ici et de mettre la réponse en moi-même mais voyez que vous l'avez déjà fait! J'ai trouvé ce billet de blog littéralement 5 minutes après avoir posé cette question mariusschulz.com/blog/...



1
votes

J'avais un problème similaire. J'ai essayé la réponse ci-dessus et j'avais toujours un problème. Une fois que j'ai changé la solution dans VSTS pour construire avec VS2017 au lieu de "dernière", ma version a recommencé à fonctionner. entrez la description de l'image ici

On dirait que Microsoft a récemment mis à niveau les outils de son agent hébergé.


1 commentaires

Le mien était / est en train de construire avec VS2017. Lors de la recherche du correctif, je suis tombé sur quelques articles où les gens avaient le même problème que vous avec l'exécution de VS2019. +1 pour la note de mise à niveau MS J'ai eu le sentiment que quelque chose devait être changé récemment car à peu près sûr que le package npm que j'ai ajouté n'a pas provoqué le changement soudain de version du nœud sur l'agent de build VSTS



0
votes

J'ai supprimé package-lock et poussé les modifications et la construction fonctionne comme prévu


0 commentaires