Skip to content

Les packages sur npm peuvent définir des scripts de cycle de vie dans leur package.json. Certains des plus courants sont ci-dessous, mais il y en a beaucoup d'autres.

  • preinstall : S'exécute avant que le package ne soit installé
  • postinstall : S'exécute après que le package soit installé
  • preuninstall : S'exécute avant que le package ne soit désinstallé
  • prepublishOnly : S'exécute avant que le package ne soit publié

Ces scripts sont des commandes shell arbitraires que le gestionnaire de packages est censé lire et exécuter au moment approprié. Mais exécuter des scripts arbitraires représente un risque de sécurité potentiel, donc—contrairement à d'autres clients npm—Bun n'exécute pas de scripts de cycle de vie arbitraires par défaut.


postinstall

Le script postinstall est particulièrement important. Il est largement utilisé pour construire ou installer des binaires spécifiques à la plateforme pour les packages qui sont implémentés en tant que modules complémentaires Node.js natifs. Par exemple, node-sass est un package populaire qui utilise postinstall pour construire un binaire natif pour Sass.

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

trustedDependencies

Au lieu d'exécuter des scripts arbitraires, Bun utilise une approche "sécurisée par défaut". Vous pouvez ajouter certains packages à une liste d'autorisation, et Bun exécutera les scripts de cycle de vie pour ces packages. Pour dire à Bun d'autoriser les scripts de cycle de vie pour un package particulier, ajoutez le nom du package au tableau trustedDependencies dans votre package.json.

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

Une fois ajouté à trustedDependencies, installez/réinstallez le package. Bun lira ce champ et exécutera les scripts de cycle de vie pour my-trusted-package.

Les 500 premiers packages npm avec des scripts de cycle de vie sont autorisés par défaut. Vous pouvez voir la liste complète ici.


--ignore-scripts

Pour désactiver les scripts de cycle de vie pour tous les packages, utilisez le drapeau --ignore-scripts.

bash
bun install --ignore-scripts

Bun édité par www.bunjs.com.cn