Projeler arasında kesinlikle bir node_modules dizinini paylaşabilirsiniz.
Gönderen düğümün belgelerinde :
Require () 'ye iletilen modül tanımlayıcısı yerel bir modül değilse ve' / ',' ../ 'veya' ./ 'ile başlamıyorsa, düğüm geçerli modülün üst dizininde başlar ve ekler / node_modules ve modülü bu konumdan yüklemeye çalışır.
Orada bulunmazsa, dosya sisteminin köküne ulaşılana kadar üst dizine taşınır ve bu böyle devam eder.
Örneğin, '/home/ry/projects/foo.js' adresindeki dosya gerekli ('bar.js') olarak adlandırılırsa, düğüm aşağıdaki konumlara bu sırayla bakar:
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
Bu yüzden, projeler dizininizin içine bir node_modules klasörü koyun ve istediğiniz modülleri yerleştirin. Onları normal gibi isteyin. Node, proje klasörünüzde bir node_modules dizini bulamadığında, ana klasörü otomatik olarak kontrol edecektir. Öyleyse dizin yapınızı şu şekilde yapın:
-myProjects
--node_modules
--myproject1
---sub-project
--myproject2
Bu nedenle, alt projenizin bağımlılıkları bile ana node_modules deponuza dayanabilir.
Bunu bu şekilde yapmanın bir dezavantajı, package.json dosyanızı manuel olarak oluşturmanız gerekmesidir (biri bunu grunt veya başka bir şeyle otomatikleştirmenin bir yolunu bilmiyorsa). Paketlerinizi kurduğunuzda ve bir npm install
komuta --save argümanını eklediğinizde, bunu otomatik olarak bağımlılıklar bölümüne veya package.json dosyanıza ekler, bu da uygundur.
require
. Aksi takdirde, hayır,node_modules
kullanım için resmi bir "merkezi" klasör yokturrequire()
.