web-dev-qa-db-fra.com

Pourquoi Electron doit-il être enregistré en tant que dépendance de développeur?

Selon le site officiel, la bonne façon de sauvegarder les fichiers électroniques est:

npm install electron --save-dev

Electron est en fait requis pour exécuter l'application (littéralement: require()) et cela va à l'encontre de la réponse la plus votée ici . Alors, pourquoi faisons-nous cette exception, si elle n'en est qu'une?

13
Deformer

Le fait que vous require un package n'a pas d'importance s'il doit être considéré comme une dépendance ou une devDependency (au sens npm). Par exemple. de nombreux projets utilisent l'API webpack (c'est-à-dire const webpack = require('webpack')) mais le listent comme devDependency.

La raison est également expliquée dans l'article que vous liez: lorsque vous publish votre package, si le projet consommateur a besoin d'autres packages pour utiliser le vôtre, ceux-ci doivent être répertoriés comme dependencies.

Si votre package utilise certains modules uniquement pour les construire, les tester ou les regrouper dans un fichier dist (c'est-à-dire ce qui sera utilisé par le projet consommateur), ces modules ne doivent pas être mentionnés dans dependencies. Nous les listons toujours dans devDependencies pour le développement.

Maintenant, dans le cas d'une application électronique, il y a peu de chances que vous utilisiez votre application en tant que module de nœud d'un projet consommateur, par conséquent la convention ci-dessus n'est pas vraiment pertinente.

De plus, nous tombons dans le cas où le package electron est intégré dans la sortie construite. Il n'est pas nécessaire que votre utilisateur obtienne electron de npm pour utiliser votre application intégrée. Par conséquent, il correspond bien à la définition d'une devDependency.

Cela étant dit, l'IIRC certains emballeurs d'électrons regroupent votre dependencies dans l'application intégrée, vous avez donc encore besoin de rigueur pour remplir cette liste.

7
ghybs

Parce que ces binaires ne seront pas utilisés lorsque vous empaqueterez réellement dans l'installateur. La plupart des installateurs/conditionneurs pour electron construiront des packages avec des binaires electron, au lieu d'utiliser des dépendances.

0
OJ Kwon