Unix shell commands para Node.js →shelljs

Clayton K. N. Passos
codigorefinado
Published in
1 min readNov 27, 2017

Hoje, peguei um boilerplate, para começar um projeto usando Node.js, TypeScript, Mongo, Mongoose, Express e ao avaliar encontrei nos scripts do package.json a seguinte linha:

"copyApp": "cd src/public && cp -rfv app ../../build/public",

Funciona, no Linux, e no Mac, o comando cp existe nestes Sistemas Operacionais, mas no Windows não, e como eu e toda equipe que trabalho estão no windows, esta linha me traria problemas.

É por isto que hoje, lhe escrevo, para compartilhar a solução que dei para este comando que copia todo o conteúdo de uma pasta para outra. No meu refactoring utilizei o shelljs, a sua proposta é dar ao node comandos shell do Unix, e com ele, minha solução foi criar o arquivo scripts-shell/copy-app.js e chama-lo nos scripts do package.json

var shell = require('shelljs'); 
shell.cp('-R', 'src/public/app', 'build/public');

Assim, troquei isto:

"copyApp": "cd src/public && cp -rfv app ../../build/public",

Por isto:

"copyApp": "node scripts-shell/copy-app.js",

Desta maneira o script se tornou multi plataforma ;) Curtiu?

Vamos a mais um exemplo simples, para atiçar sua curiosidade. Poderia executar o comando cat e ver o conteúdo de um arquivo, assim:

const sh = require('shelljs')const contents =  sh.cat('arq1.txt')console.log(contents.toString())

https://github.com/shelljs/shelljs

--

--