Executar questões de configuração no PhpStorm

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.