Où node.js met-il ses fichiers?
J'ai récemment commencé à jouer avec node.js mais je me suis perdu dans un grand désordre des différentes versions de nœud, npm, nvm et d'autres paquets. Je ne sais pas ce qui est installé à l'échelle mondiale et ce qui est installé localement (et si localement, comment les paquets de connaître les versions de nœud ils peuvent l'utiliser?).
J'aimerais avoir quelques résumé de ce que les différentes options d'installation à faire. En particulier:
- Où est le nœud installé lorsque j'utilise
nvm
apt-get
make install
ou lors de l'utilisation d'autres moyens? - Est-ce une bonne idée d'installer nœud localement?
- Pourquoi ne
nvm
changer mon~/.profile
au lieu de s'installer dans un système reconnaissablebin
dossier? - J'ai vu que
nvm
pouvez installer différentes versions de nœud à côté les uns des autres - pourquoi voudrais-je faire cela? Je peux les installer localement, plutôt, non? - Où
npm
installer des paquets? J'ai vu qu'il vérifie que les paquets aganist version de Nœud, ce qui arrive à ces paquets lorsque le nœud est mis à jour? - Dans ce cas, il est préférable d'utiliser les locaux ou globaux de l'installation? Où dois-je mettre mes paquets, alors (et où ils l'ont mis par défaut?)
- Quelle est la différence entre
npm
nvm
etnave
?
EDIT: Il y a beaucoup de façons d'installer nœud icice qui me rend encore plus confus...
source d'informationauteur mik01aj
Vous devez vous connecter pour publier un commentaire.
apt-get installe tous les logiciels, pas un seul nœud sur le système de fichiers à la suite de la Ubuntu convention où stocker les fichiers binaires, l'homme de fichiers, les fichiers partagés, des journaux, etc. Cependant, l'utilisation d'apt-get, vous aurez seulement la version de nœud qui est déterminée par la distribution de cycle de sortie. Si des mises à jour sont disponibles, elles seront installés avec
apt-get update; apt-get upgrade
Cependant, la version la plus récente de certaines application ne sera pas disponible jusqu'à ce qu'il a fait son chemin dans la distribution. Par exemple le nœud v0.x.y peuvent ne pas être disponibles jusqu'à ce que Ubuntu 13.10 la seule façon d'obtenir sera pour l'installer manuellement. Le bon côté deapt-get
ou d'un autre système de gestionnaire de paquets, c'est qu'il gère les mises à jour et la suppression de paquets pour vous. Il stocke toutes les données concernant le logiciel dans sa propre base de données. Vous pouvez toujours supprimer le noeud avecapt-get remove node
et c'est tout.make install
installer le package manuellement, mais il est considéré comme dangereux. N'utilisez jamais lemake install
principalement parce que vous ne serez pas en mesure de supprimer le package facilement, vous aurez à lire le Makefile et supprimer manuellement tous les fichiers installés par elle. Dans une situation où vous souhaitez utilisermake install
il y a toujourscheckinstall
disponibles. C'est un logiciel qui crée un paquet natif et les registres du système. Lorsque vous décidez de supprimer le paquet vous pourriez le faire avec une seule commande à la place de de nombreux. lien wiki; Ubuntu guide sur checkinstallMaintenant
nvm
script est unnode version manager
. Il est très utile et facile à utiliser. Il vous permet d'avoir plusieurs versions de nœud à être installé et utilisé en parallèle sur votre machine. Il ne compile pas le nœud de source commemake install
il est donc très rapide. il ne dépend pas de la distribution de votre cycle de sortie de sorte que vous avez accès à tous les nœud versions disponibles pour le moment. nvm téléchargements de fichiers binaires précompilés et est parfait pour une utilisation générale. Il stocke le nœud de fichiers dans son propre dossier en local donc, dans le cas où vous souhaitez comparer quelque chose entre le nœud différent des versions c'est facile à faire.Si localement par vous dire en utilisant
nvm
puis, c'est très bon pour le développement et les tests. Pas sûr au sujet de la performance de la production des conséquences et des avantages de l'avoir installée à partir de la source ou de l'utilisation de lanvm
des binaires précompilés. J'utilise nvm pour le développement et installé à partir de la source de la production. Toutefois, si quelqu'un pourrait expliquer ce problème tout de plus je serai heureux d'en savoir plus.Parce que
nvm
n'est pas un exécutable. C'est un ensemble de bash fonctions qui sont alimentés par shell et qui peuvent être utilisés séparément. Vous pouvez appelernvm_ls
etnvm_ls_remote
et d'autres sans le script principal, après l'est est d'origine dans votre coquille. Ce que le script principal n'est il analyse les arguments de ligne de commande et jolie impression de la sortie en cas de par exemple "nvm_ls_remote'.dans le ~/.de profil, la ligne suivante est ajoutée
charge toutes les fonctions dans votre shell
Vous pouvez les installer localement à l'aide de
make install
oucheckinstall
mais vous aurez à faire des alias pour eux comme node_0.8.1, node_0.8.2, node_0.10.1 , etc. ET vous aurez à gérer les nouveaux alias, l'installation de tous les paquets, de les retirer dans le cas où vous n'avez pas besoin de VOUS-même. Ce sont fastidieux et ennuyeux tâches qui pourraient être enclins à faire des erreurs parfois.nvm
fait toutes ces tâches pour vous gratuitement.Vous voulez faire cela pour tester votre application dans les différentes versions de nœud. Par exemple vous êtes bon et testé en vertu de la v0.8 mais vous voulez utiliser les nouvelles fonctionnalités de la v0.10.3 comment faites-vous cela ? Vous devez télécharger le code source, de compiler, d'en faire un alias et d'exécuter votre application. vous pouvez le faire avec juste
nvm install 0.10.3
et d'exécuter votre application.Parfois, vous avez à l'appui de plus d'une version de nœud. Par exemple, certains environnements hébergés ne sont pas garder le contact avec la dernière version et seulement v0.6 Vos clients qui utilisent votre application serveur risquez de rencontrer un bug spécifique à cette version. Lorsque vous corrigez le bug, vous avez à le reproduire d'abord. À l'aide de
nvm
installation de la v0.6 est d'une ligne et d'une demi-minute. Et vous pouvez vérifier toutes les versions que vous voulez de cette façon facilement. Tester votre code sous différentes versions et assurez-vous que vous êtes bon pour aller.Si vous utilisez
nvm
les paquets qui sont installés à l'échelle mondiale avec-g
option sont liés à la nœud version. Lorsque vous basculez entre les versions avecnvm use 0.x
vous devez installer les paquets à nouveau ou utilisernvm copy-packages <version>
à utiliser les paquets de la version actuelle. Si les paquets sont installés localement puis ça dépend.package.json
devrait contenir des renseignements sur les dépendances de l'application. Si elle dit nœud: '0.8" et vous avez juste mis à jour à 0,9 vous risquez de rencontrer des problèmes. Par exemple le comportement deprocess.nextTick
a été changé dans les dernières versions, comparativement à 0,6. Donc, soyez prudent.Il dépend. Pour le développement
nvm
est supérieur à mon avis. Pour moi, c'est simple et commode. Pour la production, il y a peut-être des implications sur les performances lors de l'utilisation de la version précompilée fichiers qui ne sont pas optimisé pour votre système. Il serait mieux de poser une question distincte, donc les personnes avec de l'expérience pertinente pourrait répondre.npm
est unnode package manager
-> lien Il contient userland packages développés par d'autres personnes. Ces paquets ne font pas partie du nœud de base. mnp est utilisé pour la publication de votre code et de la gestion de la dépendance. Si votre application nécessite l'application d'autres développés par d'autres personnes, il est commode de le publier via npm.nvm
est unnode version manager
il fait un tout autre chose. Il vous permet de très facilement basculer entre le nœud de versions sur la même machine et gère tous les il des changements dans votre$PATH
variable d'environnement.Envisager
nvm
en tant que gestionnaire de mise à jour pour le Système d'Exploitation etnpm
comme un gestionnaire d'applications pour ce système. Eh bien, cette comparaison n'est pas précis, mais juste venu à mon espritnave
est essentiellement la même quenvm
mais c'est un exécutable, alors quenvm
est un script qui est d'origine dans la coque. Chaque système a ses propres avantages. Vous pourriez faire une question distincte quant à il du cas d'utilisation et des différences.Ma réponse n'est pas complète à 100% et contient beaucoup de la subjectivité de leurs opinions personnelles. Cependant, j'espère que je vais au moins faire quelques points de plus clair, de sorte que vous pourriez procéder à d'autres questions plus spécifiques. Btw, cette question de la liste de la vôtre pourrait être demandé comme des questions distinctes. Je crois que stackoverflow donne de meilleurs résultats lorsque des questions sont posées séparément et en plus de gens avec de l'expérience pertinente pourrait contribuer.
Si vous exécutez
dans folser avec le paquet.json, il installer tous les paquets en local (dossier en cours).
Également du mécanisme d'installation par défaut packeges local. Pour l'installer globalement d'utilisation du g drapeau:
Exécuter la commande suivante:
Vous voir tous les mnp config description
Vous pouvez installer des modules dans le contexte de votre application avec
npm install modulename
Dans ce cas, le module sera installé à votre dossier node_modules de votre application.
Sinon, vous pouvez installer un module dans le contexte global avec
npm install -g modulename
Dans ce cas, le module sera installé pour le trou de l'environnement système généralement dans /usr/local/bin/modulename.
L'installation globale de sens que pour les modules dont vous avez besoin en plus d'une application, comme l'express ou le nœud-inspecteur.