Olá,
Hoje aprendi uma lição dolorosa sobre como executar o LoopBack de dentro do PhpStorm (ou provavelmente de qualquer IDE). A configuração de execução pede um diretório de trabalho e um script. Eu tinha:
Diretório de trabalho: / Users / mike / dev / lb / server
Arquivo JavaScript: server.js
E tudo parecia funcionar para mim. Mas me encorajou a escrever um bug 🙁
Quando adicionei Bunyan ao meu arquivo server.js para registro, adicionei:
if (config.isDev) {
var spawn = require('child_process').spawn;
var bunyanCLI = spawn('../node_modules/bunyan/bin/bunyan', ['--color'], { stdio: ['pipe', process.stdout]
});
logOptions.stream = bunyanCLI.stdin;
}
O erro foi o “..” inicial no caminho. Eu olhei no meu histórico de arquivos e vi que originalmente (corretamente!) Usei apenas ‘.’, Mas não funcionou quando o executei pelo PhpStorm, então mudei para ‘..’ – o que era ruim . Quando fui para o console e tentei executar o aplicativo digitando “slc run” no diretório raiz, recebi o seguinte erro (não muito útil):
events.js:72
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)
Portanto, quando o dir atual era a raiz, o ponto-ponto o fazia de modo que o comando spawn não pudesse encontrar o executável bunyan. Isso foi mascarado sempre executando a partir do diretório / server ao usar o PhpStorm.
A resolução do código era não usar um caminho codificado:
var bunyanCLI = spawn(path.resolve(__dirname, '../node_modules/bunyan/bin/bunyan'), ['--color'], { stdio: ['pipe', process.stdout] });
Mas o “bug” original estava em minha configuração de execução que me levou a escrever o bug no código. Portanto, alterei a configuração de execução para sempre executar a partir do diretório raiz:
Diretório de trabalho: / Users / mike / dev / lb /
Arquivo JavaScript: server / server.js
Eu não sabia que você poderia incluir um caminho de diretório no item Arquivo JavaScript, mas você pode … e deveria.