2016-01-12 28 views
9

Sto tentando di eseguire alcune attività di pre-distribuzione (unit test ecc.) Con NPM su un sito Web di Azure, tuttavia la versione del nodo sul VM è v0.10.32, la versione corrente del nodo è v4.2.4.Aggiornamento del nodo su un sito Web di Azure?

ho accesso non amministrativo alla riga di comando tramite il sito web SCM, non RDP ecc

C'è qualche modo per aggiornare?

risposta

8

È possibile specificare la versione del nodo che l'applicazione è in esecuzione utilizzando il file package.json. Aggiungere:

"engines":{"node":version} 

es .:

"engines":{"node": "0.12.x"}, 

Maggiori informazioni: https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/

+0

Questo è per l'esecuzione di attività di NPM però, funzionerà ancora? – JMK

+0

L'ho usato nel mio ultimo progetto. Quindi, quando ho chiamato il nodo -v ha riportato il numero di versione del nodo corretto. –

+0

Waow cool ci provo, grazie – JMK

11

Garantire l'Azure Web App ha la versione nodo che si desidera.

  1. Vai yoursite.scm.azurewebsites.net
  2. scegli Debug Console (PowerShell o CMD)
  3. Spostarsi D:\Program Files (x86)\nodejs
  4. Run dir per vedere le versioni nodejs disponibili.

Ad esempio, se esiste una directory denominata 6.3.0, è possibile utilizzarla.

// App Setting 
WEBSITE_NODE_DEFAULT_VERSION 6.3.0 

// package.json 
engines":{"node": "6.3.0"} 
+0

Questo era utile non avevano 6.10.1 quando ho provato ad aggiornare ma avevano 6.10.0 – John

+0

Questo ha funzionato per me a partire dal 11/3/2017 senza la necessità di un file iisnode.yml. –

+0

... per un'app angolare node.js. Ho usato VSTS per entrambi i repository git, build e release. La build utilizza Visual Studio 2017 ospitato, npm per installare angular e node, la riga di comando per ng build. Si basa sul npm con il modello di build Gulp VSTS. La versione cattura semplicemente l'artefatto e la spinge in Azure. –

8

Aggiornamento 2017. . Tutti sopra non ha funzionato per me in

ho cambiato:

// package.json 
engines":{"node": "8.0.0"} 

e poi ho aggiunto le impostazioni di VALUE app

<appSettings> 
    <add key="WEBSITE_NODE_DEFAULT_VERSION" value="8.0.0" /> 
</appSettings> 

ho rimesso in moto un app milione di volte, e la soluzione era di cambiare iisnode.yml

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs\8.0.0\node.exe" 

Questo è tutto. Spero che aiuti qualcuno.

Aggiornamento

Giusto per chiarire le cose: sto parlando di App Servizio App Service Image

E se si ftp per la vostra applicazione si vedrà iisnode.yml qui:

iisnode.yml on ftp

+0

Quindi la risposta accettata non ha funzionato? Se è così, cambierò il tuo con quello accettato. – JMK

+0

@ JMK no, non ha funzionato per me. Forse hanno cambiato roba da quel momento, non ne sono sicuro. Ma altre impostazioni non hanno cambiato nulla finché non ho cambiato iisnode.yml. Forse ciò accade perché non ho specificato inizialmente la versione del nodo, quindi è stato impostato in modo predefinito su v0.10, che non è supportato da molti plug-in fino ad oggi. –

+1

Questo è ciò che ha funzionato anche per me –

Problemi correlati