web-dev-qa-db-fra.com

Définissez le registre privé dans package.json

Nous avons un dépôt npm privé basé sur Sinopia

Que dois-je définir dans package.json que certains packages seront installés à partir de Synopia plutôt qu'à partir du référentiel global npm?

Si je l'installe à partir de la ligne de commande, je peux exécuter: npm install <package_name> --registry <http://<server:port>

P.S. essayé de google et regardé dans la documentation officielle de NPM mais n'ont rien trouvé.

13
Anatoly

L'une des méthodes que je connais est par .npmrc Vous pouvez également utiliser .npmrc également à l'intérieur du projet

définir une configuration comme celle-ci

registry = http://10.197.142.28:8081/repository/npm-internal/
init.author.name = Himanshu sharma
init.author.email = [email protected]
init.author.url = http://blog.example.com
# an email is required to publish npm packages
[email protected]
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=

l'auth peut être généré par nom d'utilisateur: mot de passe echo -n 'admin: admin123' | openssl base64

sortie YWRtaW46YWRtaW4xMjM =

14
Himanshu sharma

Le point entier de la sinopie est un registry privé et un proxy en même temps. Vous pouvez utiliser liaisons montantes installer tous vos packages à partir d'un point d'entrée de registre. Sinopia est en mesure d'acheminer vers n'importe quel registre si le stockage local n'est pas en mesure de résoudre la dépendance. Par défaut, il pointe vers npmjs.

Donc, si vous définissez votre configuration comme

   # a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

Vous devriez pouvoir résoudre toutes vos dépendances indépendamment de la source de chacune d'entre elles

btw: sinopia n'est plus maintenu.

0
Juan Picado