Skip to content

Pacotes no npm podem definir scripts de ciclo de vida em seu package.json. Alguns dos mais comuns estão abaixo, mas há muitos outros.

  • preinstall: Executa antes do pacote ser instalado
  • postinstall: Executa depois que o pacote é instalado
  • postuninstall: Executa antes do pacote ser desinstalado
  • prepublishOnly: Executa antes do pacote ser publicado

Estes scripts são comandos shell arbitrários que o gerenciador de pacotes deve ler e executar no momento apropriado. Mas executar scripts arbitrários representa um risco de segurança potencial, então—ao contrário de outros clientes npm—o Bun não executa scripts de ciclo de vida arbitrários por padrão.


postinstall

O script postinstall é particularmente importante. É amplamente usado para construir ou instalar binários específicos de plataforma para pacotes que são implementados como add-ons nativos do Node.js. Por exemplo, node-sass é um pacote popular que usa postinstall para construir um binário nativo para Sass.

json
{
  "name": "my-app",
  "version": "1.0.0",
  "dependencies": {
    "node-sass": "^6.0.1"
  }
}

trustedDependencies

Em vez de executar scripts arbitrários, o Bun usa uma abordagem "padrão-seguro". Você pode adicionar certos pacotes a uma lista de permissões e o Bun executará scripts de ciclo de vida para esses pacotes. Para dizer ao Bun para permitir scripts de ciclo de vida para um pacote específico, adicione o nome do pacote ao array trustedDependencies no seu package.json.

json
{
  "name": "my-app",
  "version": "1.0.0",
  "trustedDependencies": ["node-sass"] 
}

Uma vez adicionado ao trustedDependencies, instale/reinstale o pacote. O Bun lerá este campo e executará scripts de ciclo de vida para my-trusted-package.

Os 500 principais pacotes npm com scripts de ciclo de vida são permitidos por padrão. Você pode ver a lista completa aqui.


--ignore-scripts

Para desabilitar scripts de ciclo de vida para todos os pacotes, use a flag --ignore-scripts.

bash
bun install --ignore-scripts

Bun by www.bunjs.com.cn edit