web-dev-qa-db-fra.com

Yarn installant plusieurs versions du même package

J'ai angular dans mes dépendances au 1.5.11:

{
    "dependencies": {
        "angular": "1.5.11",
        "angular-foundation": "0.7.0"
    }
}

angular-foundation Dépend de angular@>=1.3.0.

Pourquoi Yarn installe-t-il [email protected] En tant que dépendance imbriquée de fondation angulaire au lieu d'utiliser la version du projet? Cela provoque angular à exister deux fois dans l'application et ne fonctionne pas correctement:

node_modules angular (1.5.11) angular-foundation (0.7.0) node_modules angular (1.6.9)

Cela ne se produit pas avec [email protected] - npm utilise 1.5.11 pour l'application et le package.

11
marekpw

Vous devez utiliser les résolutions Yarn pour cela

https://yarnpkg.com/lang/en/docs/selective-version-resolutions/

Alors votre package.json deviendra comme ça

{
  "name": "depdencies",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",

    "dependencies": {
        "angular": "1.5.11",
        "angular-foundation": "0.7.0"
    },
    "resolutions": {
      "**/angular": "1.5.11"
    }
}

Ce qui indique à yarn que tout enfant angular sera définie sur 1.5.11. Après la mise à jour de cette exécution ci-dessous

$ rm yarn.lock
$ yarn
12
Tarun Lalwani