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:

MENSAGEM DE ERRO USANDO O NÓ-INSPETOR DE

enter image description here

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.

  1. Encontrado o grunhido.arquivo cmd em uma máquina windows localizado na C:\Users\khollenbeck\AppData\Roaming\npm.Aberto grunt.cmd arquivo e encontrou o seguinte....

    enter image description here

  2. Isso me levou a C:\Users\khollenbeck\AppData\Roaming\npm\node_modules\grunt-cli\bin que continha um arquivo chamado grunt.E de lá, no topo do arquivo.Eu mudei este código #!/usr/bin/env node para #!/usr/bin/env node --debug-brk

  3. 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

  4. 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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top