comment faire pour installer plusieurs versions de package à l'aide de la ngp
En raison de https://github.com/npm/npm/issues/2943, mnp n'aura jamais la possibilité de faire un alias de paquets et installer plusieurs versions d'un même ensemble.
Les solutions de contournement posté sur le github question pourrait fonctionner pour les pur-JS les modules, mais en tant que mnp, devient un standard pour l'interface de gestion de paquets, les paquets incluent maintenant des divers éléments, tels que CSS.
Est-il une solution pour installer plusieurs versions d'un même paquet?
La meilleure idée que j'ai trouvé est de "cloner" un paquet, et le publier avec un nom légèrement différent.
Par exemple, si vous avez besoin de plusieurs versions de jquery
, vous pouviez juste de publier paquets appelés jquery-alias1
, jquery-alias2
, jquery-alias3
etc, puis définissez les versions appropriées dans votre package.json
.
Ou vous pouvez nommer les paquets en fonction de leur numéro de version, par exemple,jquery-1.11.x
, jquery-2.1.x
, etc..
Ces deux approches semblent bâclée bien. Existe-il mieux?
- N'est-ce pas bower la norme dans l'interface de gestion de paquets qui peuvent facilement le faire.
- Oui bower semble comme une alternative. Il est trop mauvais, il ne semble pas être un mécanisme national de prévention de la solution, comme l'introduction d'un autre système de gestion des paquets pour une grande équipe peut être difficile. Surtout si vous avez déjà de l'infrastructure mise en place pour soutenir la ngp (ex. un privé mnp de registre du serveur)
Vous devez vous connecter pour publier un commentaire.
Je voulais poster ici pour quelqu'un comme moi qui utilise Fil et a atterri ici. Il est plus ou moins la baisse-dans le remplacement pour les MNP qui prend en charge l'aliasing de la boîte:
(crédit pour l'exemple de https://github.com/callemall/material-ui/issues/7195#issuecomment-314547601 )
<alternative-name>@npm:<package-name>@<version>
De npm v6.9.0, mnp prend désormais en charge le package alias. Il implémente la même syntaxe que la Laine utilise:
Cela ajoute à
package.json
:Il est également possible de l'installer directement à partir de Github avec cette syntaxe. Par exemple, si vous souhaitez vous installer à la fois le mécanisme national de prévention de registre et une version Github fourche de l'emballage
foobar
:Ça sonne comme "JSPM" pourrait être exactement l'outil que vous recherchez. JSPM s'appuie sur le dessus de la NGP, mais vous permet de tirer des paquets provenant de plusieurs sources (github, npm, etc). Il utilise le System.js universel, chargeur de module sur la face avant pour le chargement des modules, et "utilise plat de gestion de version à télécharger en version suffixe dossiers" qui sont faciles à comprendre.
jspm.io
Lorsque vous installez un package avec jspm vous pouvez alias paquet à un nom particulier, que vous pourrez ensuite
require
spécifiquement dans vos modules.Puis dans votre js, vous pouvez simplement
require(jquery)
et/ourequire(jqueryOne)
que nécessaire, vous permettant d'aller d'avant en arrière comme nécessaire.Cela va de même pour tout colis qui vous souhaitez utiliser plusieurs versions de.
C'est assez difficile de le faire proprement, en raison de la façon mnp fonctionne, donc je voudrais éviter de tenter de le faire dans la production.
Cependant, pour des tests d'intégration et de semblables cas d'utilisation, j'ai créé un package appelé multidep, ce qui vous permet d'installer plusieurs versions d'un même package et
require
eux comme suit:NPM Install de la Version (https://github.com/scott113341/npm-install-version) est également une option. Il fait essentiellement ce que certains des autres solutions ici faire (techniquement parlant), mais est très simple à utiliser. Les Modules installés avec un numéro de version (standard @version commande param utilisé par NPM) sont, de manière prévisible, installé dans un sous-dossier sous node_modules avec ce nom. Vous pouvez également contrôler le dossier de destination par module - ce qui est utile à la construction de systèmes.
Utilisation de l'extrait de code de l'GitHub Docs:
install-npm-version
(https://github.com/scott-lin/install-npm-version) est encore une autre option. Il peut être utilisé sur la ligne de commande, ou par l'intermédiaire d'une interface de programmation, écrite en caractères d'imprimerie pour le développement moderne.Exemple #1: Installer pour de version (par défaut) répertoire
Exemple #2: Installation de répertoire personnalisé
Exemple #3: Installation en mode silencieux ou bruyant sortie standard
Exemple n ° 4: Remplacer une installation existante