2014-11-18 13 views
10

, kullanmak yasal komutları belirten kullanıcı dostu bir hata mesajı alıyorsanız var isntall komutu."npm isntall" komutu yasadışı bir <code>npm</code> komutu yazdığınızda

Bu komutun amacı nedir? Bu yazım hatalarını işlemek için oluşturulduysa, neden intall, insatll vb. Için özel bir işlem yapmıyor? Ayrıca, uninstall, karşılık gelen unisntall seçeneğine sahip değildir.

(npm kullanılarak 1.3.22 sürümü).


Sormamın nedeni, yazım hatası nasıl işlendiğiyle ilgili biraz şaşırdım ve karışık olduğudur. Örneğin, git girdiğiniz komutu karşılaştırır ve mevcut bulunduğu en yakın komutları önerir: Ayrıca

$ git stats 
git: 'stats' is not a git command. See 'git --help'. 

Did you mean this? 
    status 

, pip Python package manager yerleşik bir benzer işlevlere sahiptir:

$ pip isntall 
ERROR: unknown command "isntall" - maybe you meant "install" 

Bilginize, under-the-hood o difflib.get_close_matches() işlevini kullanır.

+6

Size o isntall o UÖM'yi hatırlatmak var bu müthiş kütüphaneye güzel bir katkı olacaktır. – hobbs

+2

OP, sorularınızı cevaplamalısınız. Bu, npm'nin github sayfasından 'isntall' anahtar kelimesi ile ilgili ilk sonucum oldu. https://github.com/npm/npm/issues/2933 –

+3

Eğlence olgusu: npm'nin en yeni sürümü, bir takma ad olarak hala 'isntall' kabul ediyor, ancak bu listeyi artık insanların kafasını karıştırmamak için göstermiyor.Şahsen böyle bir takma isminin sadece aptalca olduğunu düşünüyorum, ama Github meselesiyle yargılamak, bunun hakkında daha fazla geri bildirim istemiyorlar. –

cevap

10

Github'daki bağlantılı sorunun orijinal “yükselişi” yildim ve OSS yazılımına katkıda bulunmanın ilk günleriydi ... Bunun sadece bir yazım hatası olduğunu düşündüm ve belki bir çekme talebi bunu çözecektir. Ama O döndü

, bu iyi oldu sorunu etrafında bir bütün tartışma sökülmüş ... İlk raise an issue (#2933) onlar bu cephede katkı aradığını öğrenmek için bazı iyi duygusu ile kutsanmış edildi görmek. npm Maintainers o uzatma — diğer bazı geliştiriciler tarafından, onlara zaman — ve böylece tasarruf inanıyoruz çünkü

isntall komuta varlık nedenidir olduğunu. Bağlantılı konuda tartışıldığı gibi, bu tartışmalı bir karardı ve birçok kişi, geçersiz nümerik komutların (https://www.npmjs.org/package/levenshtein) geçerli yasa dışı komutun levenshtein mesafe hesaplaması gibi yazım hatalarını çözmek için daha ilginç yöntemler önerdi. O algos birini uygulamak ve npm projesine katkıda yoksa Her halükarda

sanırım, o ...

1

Diğer her türlü yazım hatasıyla uğraşmanın başka yollardan ayrılmasının bir yolu yoktur. Init, bir yükleme hatası olabilir.

Girişinizden ya da bir şeyden levenshtein mesafesi yapabilir, ancak gereksiz karmaşıklığı ortaya çıkarır.

+0

'isntall' aslında sabit kodlanmış. Npm'in bir parçası haline gelmesi çok yaygın bir hatadır. küçük hataya göre hesaplanmaz – Pawel