Skip to content

I pacchetti su npm possono definire script del ciclo di vita nel loro package.json. Alcuni dei più comuni sono sotto, ma ce ne sono molti altri.

  • preinstall: Eseguito prima che il pacchetto sia installato
  • postinstall: Eseguito dopo che il pacchetto è installato
  • preuninstall: Eseguito prima che il pacchetto sia disinstallato
  • prepublishOnly: Eseguito prima che il pacchetto sia pubblicato

Questi script sono comandi shell arbitrari che il package manager dovrebbe leggere ed eseguire al momento appropriato. Ma eseguire script arbitrari rappresenta un potenziale rischio per la sicurezza, quindi—diversamente da altri client npm—Bun non esegue script arbitrari del ciclo di vita per impostazione predefinita.


postinstall

Lo script postinstall è particolarmente importante. È ampiamente usato per costruire o installare binari specifici per la piattaforma per pacchetti che sono implementati come add-on nativi di Node.js. Ad esempio, node-sass è un pacchetto popolare che usa postinstall per costruire un binario nativo per Sass.

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

trustedDependencies

Invece di eseguire script arbitrari, Bun usa un approccio "sicuro per impostazione predefinita". Puoi aggiungere alcuni pacchetti a una lista di autorizzazione e Bun eseguirà script del ciclo di vita per quei pacchetti. Per dire a Bun di consentire script del ciclo di vita per un particolare pacchetto, aggiungi il nome del pacchetto all'array trustedDependencies nel tuo package.json.

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

Una volta aggiunto a trustedDependencies, installa/reinstalla il pacchetto. Bun leggerà questo campo ed eseguirà script del ciclo di vita per my-trusted-package.

I primi 500 pacchetti npm con script del ciclo di vita sono consentiti per impostazione predefinita. Puoi vedere la lista completa qui.


--ignore-scripts

Per disabilitare gli script del ciclo di vita per tutti i pacchetti, usa il flag --ignore-scripts.

bash
bun install --ignore-scripts

Bun a cura di www.bunjs.com.cn