web-dev-qa-db-fra.com

Dépendances des packages locaux de Yarn

J'ai la structure de dossiers suivante:

~ (user home folder)
 - api
    ...
    - package.json
 - lib
    - libA
      ...
      package.json
    - libB
      ...
      package.json

Dans libA/package.json J'ai la dépendance locale suivante

"dependencies": {
    "libB": "../libB",
  },

LibA dépend donc de libB.

Maintenant, je veux à l'intérieur du projet api ajouter en tant que package local libA. J'exécute cd api && yarn add ../lib/libA et j'obtiens l'erreur suivante/Users/a_user/libB doesn't exist. Je comprends que Yarn voit en tant que directeur actuel ~/api donc quand lit la dépendance de libA il voit ../libB et le traduire par ~/libB et pas comme ~/lib/libB

Existe-t-il de toute façon pour y parvenir sans chemins absolus?

11
Laxmana

Oui, en utilisant lien de fil . Fondamentalement, le lien de fil vous permet de créer des liens symboliques vers des projets locaux.

Accédez au dossier libB et exécutez:

yarn link

Allez ensuite dans le dossier libA et exécutez:

yarn link libB

[~ # ~] note [~ # ~] : que libB doit être le nom sur le package.json dans le dossier libB

Ensuite, vous pouvez demander votre code libB comme d'habitude:

const libB = require('libB')
23
Fabio Antunes