Git - node_modules klasörünü her yerde yoksay


367

Birden fazla proje içeren bir projem var:

  • Ana proje
    • Mini proje 1
    • Mini proje 2

Tüm node_modulesklasör içerir. Git kök klasörden nereden başlıyorsa başlasın klasörü görmezden gelmek istiyorum. .Gitignore eklemek için böyle bir şey:

*node_modules/*

Yanıtlar:


747

Bunu ekle

node_modules/

için .gitignoredosyanın adı verilen tüm dizinleri görmezden node_modulesGeçerli klasördeki ve alt klasörlerindeki


karma için aynısını yapmak için en zorlu yol ne olabilir?
SuperUberDuper

7
Düğümler için bir gitignore şablonu için: github.com/github/gitignore/blob/master/Node.gitignore
Xavier Egea

8
Daha önce node_modules klasörünü git'e eklediyseniz @ AndrewSchreiber'in cevabına bakınız. "Git rm -r --cached node_modules" ile önbellekten kaldırmanız gerekir.
Casper

176

Proje dizinindeki terminaldeki evrensel tek astarı kullanın :

.gitignore && echo "node_modules /" >> öğesine dokunun .gitignore && git rm -r - önbellekli node_modules; git durumu

Bu bir oluşturduysanız olursa olsun çalışır .gitignoreya da olmasın, eklediğiniz olursa olsun node_modulesgit izlemeye ya da değil.

Sonra .gitignoredeğişiklikleri taahhüt edin .

açıklama

touch.gitignorezaten yoksa dosyayı oluşturur .

echove >>ekler node_modules/sonunda .gitignoreneden node_modulesklasör ve tüm alt klasörler göz ardı edilecek.

git rm -r --cachednode_modulesdaha önce eklenmişse klasörü git denetiminden kaldırır . Aksi takdirde, pathspec 'node_modules' did not match any fileshiçbir yan etkisi olmayan bir uyarı gösterecektir ve güvenle göz ardı edebilirsiniz. Bayraklar, kaldırmanın yinelemeli olmasına ve önbelleği içermesine neden olur.

git statusyeni değişiklikleri görüntüler. Bir değişiklik .gitignoregörünecek, ancak node_modulesartık git tarafından izlenmediği için görünmeyecek.


5
touchburada gerekli olmamalıdır: >>yoksa dosyayı oluşturur.
lionello

touchgereklidir. aksi takdirde >>geri döner no such file or directory: .gitignore.
Andrew Schreiber

1
Hmm, işletim sisteminden işletim sistemine farklı görünüyor
lionello

macOS'un dokunmaya ihtiyacı yok gibi görünüyor
Carles Alcolea

echo "node_modules/" > .gitignore, belirtilen belirtilen dosyanın sonuna metin ekleyerek orijinal içerikli yeni bir dosya oluşturmalıdır>>
chrisz

28

Böyle bir şey yapmayı deneyin

**/node_modules

** tüm projede özyinelemeli çağrı için kullanılır

**Tam yol adına karşılık gelen desenlerde art arda iki yıldız işareti özel bir anlama sahip olabilir:

Öncü ve **ardından eğik çizgi tüm dizinlerde eşleşme anlamına gelir. Örneğin, **/foodosya veya dizini fookalıpla aynı olan her yerde eşleştirir foo. **/foo/bardosya veya dizini bardoğrudan dizinin altındaki herhangi bir yerde eşleştirir foo.

Bir iz, /**içindeki her şeye uyuyor. Örneğin, abc/**dizin içindeki tüm dosyaları abc.gitignore dosyasının konumuna göre, sonsuz derinlikle eşleştirir.

Bir eğik çizgi ve ardından art arda iki yıldız, ardından bir eğik çizgi sıfır veya daha fazla dizinle eşleşir. Örneğin, a/\**/bmaçlar a/b, a/x/b, a/x/y/bve bu kadar.

Ardışık diğer yıldız işaretleri geçersiz kabul edilir.

Referans


2
Bu doğru cevap.
kral

Bu yaklaşımın neden basit olmaktan daha iyi olduğunu açıklamak ister node_modules/misiniz?
Tanckom

22

İlk ve en önemli şey, .gitignoreuygulamama dosya eklemektir . Aşağıdaki resimde olduğu gibi.

.Gitignore öğesini node_modules üst klasörüne / dizinine yerleştirin.

ve daha sonra bunu .gitignoredosyanıza ekleyin

/node_modules

Not

Ayrıca github'a itilmek için yoksaymak için başka dosyalar da ekleyebilirsiniz. İşte .gitignore'da tutulan bazı dosyalar. Onları ihtiyacınıza göre ekleyebilirsiniz. #sadece .gitignore dosyasına yorum yapmanın bir yoludur.

# See https://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
/node_modules

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

Neden .gitignore'a yapı eklersiniz?
Sebastian Nielsen

6
@SebastianNielsen Node_modules izlemememizle aynı sebep. Sen derleme / derleme tarafından.
Daniel Foust

8

.Gitignore oluşturunDoğrudan kod düzenleyicisi veya komutla kök klasöründe dosyası

Mac ve Linux için

 dokunun. 

Pencereler için

 echo .gitignore 

Açık .gitignore böyle beyan klasör veya dosya adı / klasöradı


4

.Gitignore içine aşağıdaki satırın eklenmesi, düğüm modüllerini tüm depodan yok sayar.

node_modules

resim açıklamasını buraya girin


1
Nasıl? Yalnızca .gitignore dosyasının bulunduğu klasördeki node_modules klasörünü yok sayacaktır
Rajendran Nadar

@RajendranNadar teşekkürler, bunu kendim anlamaya çalışıyordum.
Jack BeNimble

0

Aşağıdaki satırı .gitignore'nuza ekleyin

*/node_modules/*

Bu, geçerli dizininizdeki ve alt dizindeki tüm düğüm_modüllerini yok sayar.


Bu sorunun zaten kabul edilmiş bir cevabı olduğunu unutmayın. Lütfen bu soruda zaten mevcut olan diğer cevaplar üzerinde geliştiğinden emin olmak için cevabınızı düzenleyin .
hongsy

0

SVN / Tortoise git ile de yapabilirsiniz.

sadece node_modules -> Tortoise git -> yoksay listesine ekle'ye sağ tıklayın.

Bu, sizin için .gitIgnore oluşturur ve yeniden hazırlamada node_modules klasörünü bulamazsınız.


0
**node_modules

Bu benim için çalışıyor

alt klasörlerde bulunan tüm node_modules yoksaymak için özyinelemeli yaklaşım

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.