2017-06-19 11 views
8

kullanmadan yükleme klasörü:npm 5 Ben <a href="https://docs.npmjs.com/misc/developers#before-publishing-make-sure-your-package-installs-and-works" rel="noreferrer">advice the npm documentation wrote about</a> kullanabilirsiniz, benim düğüm kütüphane yayınlamadan önce sembolik

cd:

yapmak sonra başka bir klasör içerisine gidin yerel yüklemek sınamak ve belirleyin. ./some-other-folder

npm yüklemek üretmesi gibi ben hiçbir sorun vardı

önce NPM sürümüne 5'e ../my-package Beklediğim şey, yani yayımlayacağım şeyin çıktısı olan bir klasör.

npm yüklemek:

bir sembolik bağ olarak dizinde paketi yükleyin npm belgelerinde açıklandığı gibi

Ancak UÖM 5 kullanıyorum, artık benim yerel proje için bir sembolik yaratır geçerli projesi. Bağlantılı olmadan önce bağımlılıkları yüklenir. projenizin kökünün içinde bulunuyorsa, bağımlılıkları, bağımlılıklarının diğer türleri için olduğu gibi üst düzey düğüm_modüllerinde bulunan olabilir.

Yerel proje yüklemek için "eski" yolu nasıl kullanabilirim? Yoksa kütüphanemin doğru olup olmadığını kontrol etmenin yeni bir yolu var mı?

Teşekkür ederiz. (yükleyin yerel paketin önerdiği gibi) kullanın npm pack + npm install

+1

[https://www.npmjs.com/package/install-local](https://www.npmjs.com/package/install-local) npm modülünü kullanabilirsiniz. –

+0

Teşekkür bir demet @HardikModha :) –

+0

Ben install-local kullanarak denedim, ama aynı zamanda @ HardikModha'nın çözümü% 100 çalışmaz bu yüzden symlinks oluşturur. Ayrıca yerel bağımlılıkların bağımlılıklarını kurmamanın istenmeyen yan etkisi de vardır. – Severun

cevap

5

npm pack <path-to-local-package> 
npm install <package-version.tgz> 

Bu etkin node_modules için yerel paketi kopyalar. Bunun yalnızca üretim ile ilgili dosyaları paketleyeceğini unutmayın (package.json öğesinin files bölümünde listelenenler). Bu yüzden, paketi kendi dizininin altındaki bir test uygulamasına yükleyebilirsiniz. Böyle bir şey:

my-package 
    package.json 
    test 
    test-app 
     package.json 
     node_modules 
     my-package 

test dir my-paket/package.json içinde files dahil olmadığını varsayarsak.

Bu, npm 5 ve daha eski sürümleriyle aynı şekilde çalışır.

+0

Daha iyi bir yolu var mı? Benim kurulumumda tüm paketlerimi repo'mda aynı seviyedeyim. Mainpackage dizininde npm install --save ../otherpackage yaparak bağımlılıkları belirtiyorum. Sadece kopyalanmadan önce ../mainpackage/node_modules/otherpackage için diğer paket, şimdi bu konumda ../../otherpackage işaret eden bir sembolik link oluşturur. Benim sorunum, mainpackage/node_modules içinde symlinks olduğunda, o, ENSTAPC hatası ile nodemon esiyor olmasıdır. Paketli bir paket oluşturduktan sonra npm tgz dosyasını yüklemek otomatik dağıtım için bir soruna neden olur. – Severun

+0

Bunu denedim ve çalışmaz, çünkü diğer paketin yerel bir bağımlılığa sahip olması nedeniyle ../yetanotherpackage. 'Package.json dosyası içermediğinden' yetanotherpackage 'den yüklenemedi' hatası alıyorum. ' – Severun