web-dev-qa-db-fra.com

Les espaces de travail de fil fonctionnent-ils également avec npm?

J'ai vérifié un dépôt qui utilise du fil au lieu de npm comme outil de construction.

dans le package.json, il définit des espaces de travail pour gérer plusieurs sous-projets:

{
  "workspaces": [
    "packages/*"
  ],
  "dependencies": [],
  "devDependencies": [
    // long list
  ]
}

Par conséquent, la racine package.json ne contient aucune dépendance d'exécution. Seulement le packages/*/package.json les contenir.

Pour compiler (et démarrer en mode dev), je fais:

yarn install
yarn start

Je n'ai trouvé aucune documentation, que workspaces est également reconnu et correctement utilisé par npm.

Existe-t-il un moyen de le faire fonctionner avec npm également?

16
helt

La gestion des dépendances dans un monorepo n'est pas prise en charge avec npm. Le package Lerna est utilisé pour gérer les projets JavaScript avec des dépendances croisées. Je crois que Lerna utilise Yarn sous le capot, mais avec Yarn comme gestionnaire de packages de votre projet, cette fonctionnalité est prise en charge dès la sortie de la boîte.

Voici un dépôt qui pourrait être utile pour voir comment Yarn et Lerna fonctionnent ensemble: https://github.com/Quramy/lerna-yarn-workspaces-example

16
erica mitchell