Como depurar um Gruntfile com pontos de interrupção usando o nó-inspetor, o Windows 7?
-
20-12-2019 - |
Pergunta
Então eu passei os últimos dias tentando chegar a este trabalho, sem sorte.A maioria das soluções encontradas parecem funcionar "bem" para a depuração do nó de aplicações.Mas eu não tive muita sorte de depuração grunhido autônomo.Eu gostaria de ser capaz de definir pontos de interrupção no meu gruntfile e passo o código com o navegador ou um IDE.
Eu tentei o seguinte:
- A depuração usando o intelliJ IDE Usando o Grunhido Console (O processo terminou com o código de saída 6)
- Depuração com Nodeeclipse (Este tipo de funciona bem, mas não atingiu os pontos de interrupção definidos no eclipse, não é muito intuitiva)
- A depuração usando o nó-inspetor de (Esse tipo de obras.Eu passo por uma pequena forma de uso e F11 F10 no chrome.Mas, eventualmente, ele simplesmente trava.Usando F8 para saltar para o ponto de interrupção não funciona.)
MENSAGEM DE ERRO USANDO O NÓ-INSPETOR DE
Por isso atualmente o nó-inspetor parece que ele ficou-me o mais próximo que eu quero.Para chegar aqui, eu fiz o seguinte:
A partir do meu grunhido diretório executei os seguintes comandos:
grunt node-inspector
node --debug-brk Gruntfile.js
E, em seguida, de lá eu fui para localhost:8080/debug?port=5858
para depurar o meu Gruntfile.js.Mas como eu mencionei acima, assim como eu, pressione F8 para avançar para o ponto de interrupção de falha com o erro acima.Alguém já fez algum sucesso usando este método para tentar depurar um Gruntfile?Tão longe dos meus esforços de pesquisa não encontrei um muito bem documentado maneira de fazer isso.Portanto, esperamos que este vai ser útil ou benéfico informações para os futuros usuários.Também estou usando Windows 7 pelo caminho.Obrigado antecipadamente.
ATUALIZAÇÃO:
Eu tentei o seguinte sugerido por @dylants sem sorte até agora.
Encontrado o grunhido.arquivo cmd em uma máquina windows localizado na
C:\Users\khollenbeck\AppData\Roaming\npm
.Abertogrunt.cmd
arquivo e encontrou o seguinte....Isso me levou a
C:\Users\khollenbeck\AppData\Roaming\npm\node_modules\grunt-cli\bin
que continha um arquivo chamadogrunt
.E de lá, no topo do arquivo.Eu mudei este código#!/usr/bin/env node
para#!/usr/bin/env node --debug-brk
Depois de fazer este comando
node-inspector C:\path\to\gruntfile grunt
Eu tenho a seguinte.Node Inspector v0.7.3 Visit http://localhost:8080/debug?port=5858 to start debugging
Em seguida corri o
grunt
comando de grunhido dir.(deixando o servidor em execução no original prompt de comando)
A partir daqui eu esperava Gruntfile.js para mostrar-se na fonte do chrome dev tools.Eu também deverá ser capaz de definir pontos de interrupção de lá.Isso não aconteceu.Em vez disso, ele apenas correu todo o caminho através do Gruntfile sem quebrar ou carregar no navegador.
Editar:
Ah, eu vejo o que eu fiz de errado.Por algum motivo eu fiz nó --debug-brk com a adição do caminho C:\Users\khollenbeck\AppData oaming pm ode_modules\grunhido-cli\bin\grunhido.Seu trabalho agora, muito obrigado.Peço desculpas por arrastar para assim por muito tempo.Mas espero que isto vai ser útil para outros usuários do windows em o futuro.
Solução
Isto pode ser conseguido através da criação de node-inspector
e de partida grunt
no modo de depuração.Uma vez feito isso, você pode depurar seu Gruntfile.js
no google Chrome, como faria normalmente.
nó inicial-inspetor de
Se você não tiver node-inspector
, instale-o usando npm install -g node-inspector
.Em seguida, iniciá-lo em um terminal/prompt de comando:
$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.
executar grunt no modo de depuração
Em seguida, localize seu grunt
script.Este é o arquivo JavaScript que é executado quando você executar o grunt
comando a partir da linha de comando.Se você instalou o grunhido de forma global (usando npm install -g grunt-cli
) então é mais provável que seja em /usr/bin
ou /usr/local/bin
para *nix ou máquinas Mac.Para máquinas Windows, o grunt.cmd
pontos de arquivo para onde o grunt
script está localizado.O mais provável é a grunt
script está localizado na C:\Users\<username>\AppData\Roaming\npm\node_modules\grunt-cli\bin
.
Uma vez que você encontrou o local do script, use node --debug-brk
para executar esse script, assim, iniciar grunt no modo de depuração quebrar na primeira linha de código no arquivo.Assim, por exemplo, imaginar o grunhido script está localizado no /usr/bin/grunt
:
$ node --debug-brk /usr/bin/grunt
debugger listening on port 5858
Você saberá que você está bem-sucedida quando você ver debugger listening on port 5858
como saída, o que significa que o grunhido de script parou de execução e está esperando para ser concluído com o depurador.
depuração com o Chrome
Agora, trazer o Chrome e aponte-o para http://127.0.0.1:8080/debug?port=5858
.No google Chrome, abra e adicione pontos de quebra em seu Gruntfile.js
, e passo a passo através de como você normalmente faria.
Outras dicas
Para iniciar o nó-inspector você não deve passar a opção --debug ou --debug-brk bandeira.Você pode iniciá-lo diretamente usando node-inspector
e um caminho de arquivo, tal como você normalmente iria iniciar executar um script usando o node
de comando.Isso deve abrir automaticamente o webkit inspetor no chrome, e uma pausa na primeira linha de execução.Você pode a partir de agora inserir os pontos de interrupção de depuração e de como normal.
Como mencionado acima, para depurar um grunhido de tarefas, você teria que encontrar o seu Grunhido executável usando $ which grunt
no Mac, não tenho certeza sobre o Windows.Então você teria que copiar esse caminho, e usá-lo como o primeiro argumento passado para o nó-de depuração, com o segundo argumento é a tarefa (e você também pode incluir o grunhido de destino, se necessário).Assim, por exemplo, pode parecer:
node-debug /usr/local/bin/grunt concat:dev
e a partir daqui você pode depurar qualquer arquivo que será executado para o concat tarefa.Isto inclui as dependências de garra-concat que seria no seu local node_modules.Porque eu achei chato copiar e colar o meu caminho executável eu fiz o mais simples Nó cli para resumo esta longe https://github.com/dtothefp/node-build-debug.Se você instalar esse globalmente (e, claro, tem nó-inspetor de instalada a nível mundial), você pode:
$ build-debug grunt concat:dev
No mais recente Nó versões (a partir de 6,3 eu acho), há integrado depurador/inspetor:
https://nodejs.org/en/docs/inspector/
Basta iniciar o seu Grunhido aplicativo como este (no Windows):
node --inspect %APPDATA%\npm\node_modules\grunt-cli\bin\grunt
Se você instalar a extensão do google Chrome Nó Gerenciador De Inspetor De, o DevTools será aberto automaticamente.
Caso contrário, você pode abrir chrome://inspect
e ligar para a sessão de depuração manualmente.