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:
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
3 Réponses :
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.
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/...
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.
On dirait que Microsoft a récemment mis à niveau les outils de son agent hébergé.
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
J'ai supprimé package-lock et poussé les modifications et la construction fonctionne comme prévu