2016-06-15 11 views
6

Sto provando a creare e impacchettare il mio progetto utilizzando la distribuzione di Git di Azure.L'installazione di Grunt non riesce sull'implementazione di un'app Web blu tramite il file deploy.cmd

Ho creato i seguenti file

  1. .deployment
  2. deploy.cmd
  3. Gruntfile.js
  4. package.json
  5. bower.json

I' Ho seguito lo blog post di Jay Harris. Sotto data è la sezione di distribuzione nel file di deploy.cmd:

:: 2. Select node version 
call :SelectNodeVersion 

:: 3. Install npm packages 
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
    pushd "%DEPLOYMENT_TARGET%" 
    call :ExecuteCmd !NPM_CMD! install --production 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

:: 4. Install bower packages 
IF EXIST "%DEPLOYMENT_TARGET%\bower.json" (
    call !NPM_CMD! install bower 
    IF !ERRORLEVEL! NEQ 0 goto error 
    call .\node_modules\.bin\bower install 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

:: 4. run grunt 
IF EXIST "%DEPLOYMENT_TARGET%\Gruntfile.js" ( 
    call !NPM_CMD! install grunt-cli 
    call .\node_modules\.bin\grunt --no-color clean common dist 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

distribuzione non riesce con l'errore di seguito:

Selected npm version 3.8.6 
Updating iisnode.yml at D:\home\site\wwwroot\iisnode.yml 
[email protected] D:\home\site\wwwroot 
+-- [email protected] extraneous 
npm WARN [email protected] requires a peer of [email protected]>=0.4.0 but none was installed. 
+-- UNMET PEER DEPENDENCY [email protected]>=0.4.0 
`-- [email protected] extraneous 

[email protected] D:\home\site\repository 
`-- [email protected] extraneous 

[email protected] D:\home\site\repository 
+-- [email protected] extraneous 
`-- [email protected] extraneous 

grunt-cli: The grunt command line interface (v1.2.0) 

Fatal error: Unable to find local grunt. 

If you're seeing this message, grunt hasn't been installed locally to 
your project. For more information about installing and configuring grunt, 
please see the Getting Started guide: 

http://gruntjs.com/getting-started 
An error has occurred during web site deployment. 
npm WARN [email protected] requires a peer of [email protected]>=0.4.0 but none was installed.\r\nC:\Program Files (x86)\SiteExtensions\Kudu\55.50610.2267\bin\Scripts\starter.cmd deploy.cmd 

io non sono sicuro che altro devo fare qui per ottenere lo ha installato. Ho cercato di cercare in rete per problemi simili ma non ho trovato nessuna soluzione concreta per il problema. Sarebbe bello se qualcuno mi potesse aiutare con questo.

mio package.json

{ 
    "name": "myapp", 
    "private": true, 
    "devDependencies": { 
    "autoprefixer-core": "^5.2.1", 
    "grunt": "^0.4.5", 
    "grunt-angular-templates": "^0.5.7", 
    "grunt-concurrent": "^1.0.0", 
    "grunt-contrib-clean": "^0.6.0", 
    "grunt-contrib-compass": "^1.0.0", 
    "grunt-contrib-concat": "^0.5.0", 
    "grunt-contrib-connect": "^0.9.0", 
    "grunt-contrib-copy": "^0.7.0", 
    "grunt-contrib-cssmin": "^0.12.0", 
    "grunt-contrib-htmlmin": "^0.4.0", 
    "grunt-contrib-imagemin": "^1.0.0", 
    "grunt-contrib-jshint": "^0.11.0", 
    "grunt-contrib-uglify": "^0.7.0", 
    "grunt-contrib-watch": "^0.6.1", 
    "grunt-filerev": "^2.1.2", 
    "grunt-google-cdn": "^0.4.3", 
    "grunt-jscs": "^1.8.0", 
    "grunt-newer": "^1.1.0", 
    "grunt-ng-annotate": "^0.9.2", 
    "grunt-postcss": "^0.5.5", 
    "grunt-svgmin": "^2.0.0", 
    "grunt-usemin": "^3.0.0", 
    "grunt-wiredep": "^2.0.0", 
    "imagemin": "^5.2.1", 
    "jasmine-core": "^2.4.1", 
    "jit-grunt": "^0.9.1", 
    "jshint-stylish": "^1.0.0", 
    "karma": "^0.13.22", 
    "karma-jasmine": "^1.0.2", 
    "karma-phantomjs-launcher": "^1.0.0", 
    "phantomjs-prebuilt": "^2.1.7", 
    "readable-stream": "^2.1.4", 
    "through2": "^2.0.1", 
    "time-grunt": "^1.0.0", 
    "vinyl-fs": "^2.2.1" 
    }, 
    "engines": { 
    "node": ">=0.10.0" 
    }, 
    "scripts": { 
    "test": "karma start test\\karma.conf.js" 
    } 
} 

NOTA: Finora nessuna soluzione trovata, ho intenzione di Azure team di supporto per capire cosa posso fare. Aggiornerò la domanda una volta trovata una soluzione.

risposta

2

La maggior parte di similarquestions (non per Azure però) Point a:

npm install grunt --save-dev 
npm install -g grunt --save-dev 

(provate il globale -g installare se si è di utilizzare grunt da uno script)

This thread menzioni grugnito deve essere installato e presente nell'azzurro PATH:

The problem is not that grunt is not found on the path (" D:\Program Files (x86)\grunt\0.1.13\grunt "). It definitely starts running, but it's grunt itself that complains.
If I got to Kudu console and run ' grunt ' from the D:\home\site\repository folder, it displays exactly the same thing.

projectkudu/kudu Issue 1150 conferma:

this does not happen when running Kudu locally (i.e. outside of Azure).
So maybe something funky with the runtime env on Azure Websites.

Come si è visto in grunt issue 1459, controllare il codice di errore stato di uscita:

$ echo $? 
99 

we will first rename the node_modules/grunt directory, so that grunt-cli will be unable to find local grunt. This should result in error code 99.

The expected results occur, which make me believe the misleading grunt-cli error message has confused developers into thinking that Grunt itself is returning the wrong error code.

Quindi, nel caso di Azure, grugnito potrebbero essere installati e sul percorso, ma non dove lo si aspetta grunt-cli.

+0

Quindi stai dicendo che non c'è soluzione per questo? – JPReddy

+0

@JPReddy Sto dicendo che se, dopo aver verificato che 'grunt' è effettivamente installato correttamente (localmente o globalmente con' -g') e il problema persiste, è necessario controllare dove 'grunt-cli' si aspetta di trovare' grunt 'e, se ciò risulta inafferrabile, inoltrare il caso ad Azure e verificare se il problema riguarda il proprio ambiente. – VonC

+0

Hai ragione, suppongo di dover eseguire l'escalation al team di supporto di Azure – JPReddy

2

Controlla che il tuo pacchetto.json abbia la seguente riga.

"devDependencies": { 
    "grunt": "~0.4.5", 
.. 
} 

Grunt-cli si aspetta grugnito locale nel progetto. Questo errore

Fatal error: Unable to find local grunt.

parla di questo grugnito locale.Dal momento che lo script esegue già npm install, tutto ciò che devi fare è aggiungere il numero "grunt": "~ 0.4.5" al tuo pacchetto.json nelle dipendenze.

Il seguente comando esegue anche la stessa cosa, ovvero l'aggiunta di grunt a devDependencies.

npm install grunt --save-dev 
+0

Non ha funzionato, ho già questa linea di dipendenze in package.json – JPReddy

+0

Qual è l'errore questa volta? –

+0

Stesso errore. Intendo dire che la voce di dipendenza è presente anche prima che questo errore sia saltato fuori – JPReddy

Problemi correlati