646 votes

Dépendance locale dans package.json

Je veux faire quelque chose comme ça, donc npm install installe également les package.json de ../somelocallib ou plus important encore ses dépendances.

 "dependencies": {
    "express": "*",
    "../somelocallib": "*"
}
 

824voto

danilopopeye Points 884

Mettez la dépendance somelocallib dans votre package.json comme d'habitude:

 "dependencies": {
  "somelocallib": "0.0.x"
}
 

Ensuite, exécutez npm link ../somelocallib et npm installera la version que vous utilisez.

 app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
 

Référence: lien (1)

239voto

Michael Trouw Points 616

Alors que je cherchais exactement la même chose, il est arrivé il y a quelques jours que cette fonctionnalité était enfin mise en place après 3 ans (!!) . Il est maintenant possible de spécifier directement les chemins d’installation locaux node_module dans votre package.json, voir npm doc ici !

104voto

Brian McAuliffe Points 303

Cela fonctionne pour moi: Placez les éléments suivants dans votre package.json

 "scripts": {
        "preinstall": "npm install ./node_modules/my-own-module/"
    }
 

36voto

Taytay Points 963

Si vous souhaitez automatiser davantage ce processus, parce que vous vérifiez votre module dans le contrôle de version, et que vous ne voulez pas que les développeurs se souviennent du lien npm, vous pouvez l'ajouter à la section "scripts" de package.json:

 "scripts": {
    "postinstall": "npm link ../somelocallib",
    "postupdate": "npm link ../somelocallib"
  }
 

Cela semble au-delà du piratage, mais cela semble "fonctionner". J'ai reçu le conseil de ce numéro npm: https://github.com/isaacs/npm/issues/1558#issuecomment-12444454

2voto

damirv Points 11

En fait, depuis npm 2.0, il existe maintenant des chemins locaux de support (voir ici ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X