2017-08-21 35 views
6

(Uwaga ta jest pomyślana jako self-Q & A odpowiedź na problem jaki napotkaliśmy)Mozilla Add-ons odrzucając jQuery (choć nie jest modyfikowany)

Po próbując złożyć WebExtension Mozilla Add- Dane do publicznego wystawienia, przesłanie zostało odrzucone przez recenzenta z następującym komunikatem:

Dodatek zawiera plik biblioteki JavaScript, który nie pasuje do żadnej znanej nam wersji. Wymagamy wszystkich dodatków, aby używać niezmodyfikowanych wersji wydania.

Akceptujemy biblioteki JQuery/JQuery-UI pobrane z "ajax.googleapis.com", "jquery.com" lub "jqueryui.com"; i używane bez żadnych modyfikacji (pobrane i nie skopiowane). Minified wersje są lepsze. (zmiana nazwy pliku nie ma znaczenia)

Przykro mi, ale nie możemy zaakceptować zmodyfikowanych, zrekonfigurowanych lub dostosowanych bibliotek.

Przejawem tego samego problemu: kilka „niebezpieczne przyporządkowanie do innerHTML” ostrzeżenia o początkowej weryfikacji pochodzących z jQuery.

enter image description here

jednak dany plik został faktycznie pobrane jako uwolnienie, minified wersję z jquery.com i nie został celowo zmieniony. Co się stało?

Odpowiedz

7

Okazuje się, że nawet jeśli nie modyfikujesz plików ręcznie, możesz znaleźć się w sytuacji, gdy git zrobi to za ciebie.

Konkretnie, automatyczna obsługa zakończeń linii crlf było zmodyfikowanie minified plik jQuery, powodująca nieudanej dopasowywania w następującej sytuacji:

  • Pobierz jQuery do repo.
  • Zatwierdź plik: zakończenia linii mogą być modyfikowane w tym momencie.
  • Utwórz archiwum dla AMO; ponieważ plik został zmodyfikowany, został odrzucony w ramach oceny.

Aby temu zapobiec, można oznaczyć pliki jQuery jako pliki binarne, tak aby Git nie dotykał ich w żadnych okolicznościach, niezależnie od ustawień na konkretnej maszynie/repo.

  1. Dodaj plik .gitattributes gdzieś w łańcuchu foldery aż do miejsca, gdzie jQuery znajduje, i zakładając jquery.min.js jest nazwa pliku:

    jquery.min.js -text 
    
  2. Wymień kopię jQuery ze świeżo pobranych jeden i zrób to razem z .gitattributes.

Dobrym pomysłem byłoby zrobienie tego dla wszystkich minilimedek.

Jeśli wersja biblioteki jest rozpoznawany, weryfikacji pojawi się następujący komunikat:

enter image description here