scripts npm
Sintaxe
- A propriedade “scripts” em
package.json
permite que você execute pacotes npm localmente. - O script
"karma": "karma"
faz referência ao script shellkarma
é o diretórionode_modules/.bin
. Essa referência precisa ser capturada e um alias precisa ser aplicado a ela para ser usado em outros scripts npm, como"test": "karma start"
.
Scripts pré-reconhecidos
prepublish
: Executa antes do pacote ser publicadopublish
,postpublish
: Executa após a publicação do pacotepreinstall
: Executa antes do pacote ser instaladoinstall
,postinstall
: Executa após a instalação do pacotepreversion
,version
: Executa antes de aumentar a versão do pacotepostversion
: Executa após aumentar a versão do pacotepretest
,test
,posttest
: Executado pelo comandonpm test
prestop
,stop
,poststop
: Executado pelo comandonpm stop
prestart
,start
,poststart
: Executado pelo comandonpm start
prerestart
,restart
,postrestart
: Executado pelo comandonpm restart
. Nota:npm restart
executará os scripts de parada e inicialização se nenhum scriptrestart
for fornecido.
Pode-se deduzir que a propriedade "scripts"
em package.json
é uma ferramenta muito poderosa. Ele pode ser usado como uma ferramenta de compilação, semelhante a Grunt e Gulp, mas com mais de 250.000 pacotes disponíveis. Os scripts NPM executam pacotes npm instalados localmente em seu projeto a partir do diretório node_modules/.bin
.
Executando scripts npm
Existem dois tipos de scripts npm, e o comando para executar cada um é um pouco diferente. O primeiro tipo de scripts npm são scripts “pré-reconhecidos”. Esses scripts são reconhecidos automaticamente pelo npm e não precisam de um prefixo especial (como você verá para o outro tipo) para executá-los. O outro tipo de scripts são scripts “personalizados”. Esses scripts não são pré-reconhecidos pelo npm e precisam ser prefixados por um comando especial para executá-los. Há uma lista de scripts pré-reconhecidos na seção de comentários.
Para executar scripts pré-reconhecidos:
npm start
ou npm test
Para executar scripts personalizados, você precisa usar o comando run
:
npm executar karma
O que são scripts npm e como eles são acionados
Os scripts npm são comandos que o npm
executará para você quando chamado com os argumentos apropriados. O poder e o sentido disso é NÃO instalar os pacotes npm globalmente poluindo seu ambiente.
A diferença entre scripts pré-reconhecidos e personalizados depende da palavra run
entre as tags, scripts custom
precisarão do run
entre npm e o nome do script
Com base nisso podemos diferenciar e criar diferentes tarefas ou scripts para serem executados com o npm.
Dado o seguinte exemplo no arquivo package.json
:
{
"name": "MyApp",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "mocha --recursive ./tests/",
"test:watch": "npm run test -- -w",
"start": "nodemon --inspect ./app.js",
"build": "rm -rf ./dist/ && gulp build"
}
...
}
Podemos ver diferentes tarefas a serem executadas:
-
npm test
Funcionaria bem, pois é um script pré-reconhecido -
npm run test
Funcionaria bem, pois é uma maneira válida de executar um script npm -
npm run test:watch
também funcionaria, e está chamando npm run test dentro de si -
npm run build
Antes de executar ogulp build
excluiria a pastadist
que está no diretório (assumindo que você esteja no Linux ou o comandorm
seja reconhecido)
Executando karma localmente
snippet package.json
{
"scripts":
"test": "karma start",
"karma": "karma"
}
}