7
votes

paquet.json pour différents environnements?

J'ai une application nœud.js que je viens de déployer sur Heroku qui dépend du Canvas Module. Cependant, ce module nécessite la bibliothèque graphique du Caire et la longue histoire courte, je dois utiliser une version précomiée incluse avec Cette fourchette de toile .

normalement, mes dépendances de paquet.json ressemblent à: xxx

mais afin de faire fonctionner mon application sur Heroku , Je dois tirer dans la fourchette de GitHub xxx

est-il possible d'avoir une version "heroku-seulement" de forfait.json? Ou existe-t-il une autre section dans Package.json où je peux "remplacer" la dépendance en toile dans les environnements de développement?


2 commentaires

Déploiez-vous la même application à Heroku et ailleurs? Si Heroku est votre seule cible, pourquoi la nécessité de gérer 2 fichiers paquet.json?


Machine locale, machine Heroku, mais je peux ajouter d'autres environnements à l'avenir. Si quelqu'un d'autre vérifie le projet, l'installation de NPM échouera à moins que leur architecture correspond à celle de Heroku


3 Réponses :


1
votes

Peut-être que vous pourriez utiliser une branche spécifique à Heroku dans Git et fusionner cela avant de déployer (en veillant à ce que vous ne fusionniez pas sur votre colis.json).


2 commentaires

Ensuite, vous ne déployez pas à Heroku;)


Hahah, touché. Je suppose que j'aurais pu trouver une meilleure façon de dire "j'aimerais qu'il y ait un moyen de le faire sans git" :)



4
votes

jamais utilisé Heroku mais le format de package.json définit le champ DevDePendances, voir fiche de Nodejitsu . Ensuite, installez avec $ npm install -d .


3 commentaires

Je n'ai pas pensé que les devdependais remplaceraient différentes versions du même paquet, mais cela semble que cela fonctionne. Cependant, il semble utiliser des devdépendances même sans le drapeau --dev. Y a-t-il une variable env San partout?


Vous pouvez configurer NPM pour exécuter en mode de production avec NPM Config Set Production true ou la variable env 200 export npm_config_production = "vrai"


Ce lien est cassé pour moi



3
votes

Il y a un outil appelé PENV qui semble prometteur. De leur site:

Parfois, nous avons besoin d'un paquet différent.json propriétés pour nos différents environnements tels que la production, la mise en scène et le développement. (Ex: Jitsu déploie)

avec PENV Vous pouvez personnaliser votre fichier package.json avec des propriétés définies dans un fichier environnements.json.

va réellement essayer maintenant.


0 commentaires