Vydán Meteor 2.3!

Meteor 2.3 &2.3.1 přináší spoustu dlouho očekávaných upgradů a vylepšení. Má také malou dietu s odstraněním dlouhého zastaralého kódu v balíčcích, což nám umožňuje více se zaměřit na budoucnost.

Upgrade uzlu 14

První velkou změnou v Meteoru 2.3 je upgrade verze Node na Node 14.17.3 z 12.22.1. Tím se Meteor dostane na aktuální verzi LTS Node, která přináší aktualizace ve V8. Další informace najdete v článku o vydání Node 14. Některá vylepšení, která jsou přítomna v Node 14, jako jsou nové funkce JavaScriptu (jako volitelné řetězení), jsou již v Meteoru k dispozici.

Stejně jako u každého upgradu uzlu to bude vyžadovat, abyste zkontrolovali své aplikace, abyste zjistili, zda jsou vaše závislosti kompatibilní s novou verzí. Měli byste odstranit node_modules složku a nainstalujte své závislosti přes meteor npm install .

Stejně jako u každé aktualizace Node byly aktualizovány i závislosti meteor-nástroje, s nejpozoruhodnějším:

  • npm aktualizováno na 6.14.13, aby korelovalo s aktualizací Node
  • fibers v5.0.0
  • promise v8.1.0
  • node-gyp v8.0.0
  • @babel/runtime v7.14.6
  • request v2.88.2
  • tar v2.2.2
  • sqlite3 v5.0.2
  • moment v2.29.1
  • underscore v1.13.1
  • optimism v0.16.1
  • @wry/context v0.6.0

Vylepšené opětovné načítání a HMR

Zodern usilovně pracoval na postupných vylepšeních a opravách pro HMR, zejména na zlepšení sledování toho, které soubory se používají při vytváření zásuvných modulů, aby věděl, kdy má provést kompletní přestavbu, rychlejší přestavbu pouze pro klienta nebo úplně přeskočit přestavbu po souboru. je upraven. To by mělo fungovat s jakýmkoli souborem v libovolném adresáři a jak pro soubory v aplikaci, tak pro soubory v balíčcích. Nejvýraznější zlepšení je při úpravě souboru používaného pouze na klientovi. Meteor pouze znovu sestaví klienta, i když soubor není v importech nebo ve složce klienta. To nyní odstranilo potřebu mít složku pro importy, aby změny v uživatelském rozhraní nerestartovaly server. Toto byla chyba zavedená po přidání meteoru mainModule možnost v package.json , a teď je to opraveno!

Na experimentální straně testujeme zkrácení času stráveného (re)startováním serveru ve vývoji přidáním mezipaměti pro Reify. Tuto optimalizaci lze aktivovat nastavením METEOR_REIFY_CACHE_DIR proměnná prostředí. Pokud to vyzkoušíte, dejte nám vědět, jak to dopadlo, abychom mohli získat více dat, abychom to mohli ve výchozím nastavení zapnout.

Balíčky účtů porušující změny

Balíčky účtů prošly v tomto cyklu vydání mnoha vylepšeními. I když jde většinou o drobná vylepšení nebo změny, je jen málo takových, které vyžadovaly zásadní navýšení verze pro některé balíčky. Tato hlavní verze bude vyžadovat akci od všech správců balíčků, kteří závisí na accounts-base , accounts-password a oauth balíčky zahrnout nový rozsah takto:api.versionsFrom(['1.12', '2.3']) nebo api.use('[email protected] || 2.0.0')

To je způsobeno odstraněním starých API, jak je popsáno níže, porušením pracovního postupu registrace a odstraněním hesla ve stylu SRP, vše jak je popsáno níže.

Pracovní postup registrace účtu byl oddělen od pracovního postupu pro resetování hesla (záznamy registračního tokenu jsou nyní uloženy v samostatném poli databáze services.password.enroll místo services.password.reset ). Pokud jste prováděli nějaké operace související s postupem registrace, budete s největší pravděpodobností muset změnit své dotazy na DB.

A konečně, staré mechanismy hesel ve stylu SRP z doby před Meteorem 1.0 byly nyní zcela odstraněny. Další volání API z doby před Meteorem 1.0, která byla zastaralá (a nyní z velké části pouze poukazují na jejich současné ekvivalenty), skončila v tomto vydání. Úplné podrobnosti naleznete v historii.

Odstranění zastaralých rozhraní API v balíčcích

S vydáním Meteoru 2.0 bylo jen otázkou času, kdy budou odstraněna stará zastaralá API z doby před Meteorem 1.0. Toto vydání představuje první krok zaměřený na odstranění zastaralých rozhraní API kolem balíčků. Počínaje samotným rozhraním API pro balíčky byla odstraněna stará volání stylu podtržení. Tedy prastará volání jako api.add_files již nebude fungovat a měli byste použít variantu velbloudího pouzdra (api.add_files => api.addFiles ).

V rámci všech základních balíčků byly odstraněny všechny zastaralé koncové body API z doby před Meteorem 1.0, úplné podrobnosti najdete v historii. To by se mělo týkat pouze balíčků a aplikací, které jsou s námi od úplného začátku a nepodařilo se jim migrovat na nová volání API.

Nepodporovaný příznak pro balíčky

Mezi všemi těmito odstraněními máme nový přírůstek pro životní cyklus balíčku. V životním cyklu balíčku může nastat čas na ukončení vývoje z různých důvodů nebo bude nahrazen. V obou případech vám Meteor nyní umožňuje snadno informovat uživatele o balíčku nastavením příznaku zastaralosti na hodnotu true:deprecated: true v popisu balíčku. Kromě toho jej můžete nahradit řetězcem, který uživatelům řekne, kde najít náhradu nebo co mají dělat.

Upozornění a pokyny se zobrazí v konzole po přidání nebo aktualizaci zastaralého balíčku.

Pokud chcete vidět příklad použití, podívejte se na zastaralé balíčky v Meteoru.

Strojopis 4.3.2

Pro fanoušky silně typovaného JavaScriptu upgradujeme Typescript na 4.3.2. Podívejte se na potřebné dobroty:

  • Oddělte typy zápisu ve vlastnostech
  • override a --noImplicitOverride Vlajka
  • Vylepšení typu řetězce šablony
  • ECMAScript #private Prvky třídy
  • ConstructorParameters Práce na abstraktních třídách
  • Kontextové zúžení pro generika
  • Vždycky pravdivé kontroly slibů
  • statické indexové podpisy
  • Lazier Calculations in --incremental a --watch Kompilace
  • Dokončení výpisu importu

Odpovědi WebApp

Webapp bude vhodně reagovat na nepodporované požadavky namísto odesílání obsahu, včetně zpracování nových HTTP sloves, jako jsou OPTIONS, aby se zlepšila kompatibilita následujícím způsobem:

GET

Odpovězte požadovaným zdrojem; statický majetek, standardní atd.

HEAD

Vraťte hlavičky identické s požadavkem GET
Neposílejte obsah (uživatelský agent jej stejně ignoruje)

MOŽNOSTI

Odpovězte pomocí 200
Odeslat seznam povolených metod požadavku záhlaví Povolit
Neposílejte obsah

CONNECT, DELETE, PATCH, POST, PUT, TRACE atd.

Odpovězte pomocí 405 Method Not Allowed
Odeslat seznam povolených metod požadavku záhlaví Povolit
Neposílejte obsah

DDP_DEFAULT_CONNECTION_URL chování změněno

Nezdokumentovaná proměnná prostředí DDP_DEFAULT_CONNECTION_URL chování se změnilo. Nastavení DDP_DEFAULT_CONNECTION_URL při běhu serveru (vývoj:meteor run nebo production:node main.js ) nastaví výchozí hodnotu serveru DDP pro meteor. Ale to nefungovalo pro aplikace cordova. Nyní můžete definovat výchozí hodnotu serveru DDP aplikace cordova nastavením DDP_DEFAULT_CONNECTION_URL při sestavování.

Vlajka nových platforem

Nový příznak --platforms byly přidány do příkazu meteor build k určení platformy, pro kterou chcete stavět. meteor build . --platforms=android . To je užitečné například tehdy, když nepoužíváte MacOS a chcete svou aplikaci vytvořit pouze pro Android. Nebo to můžete použít, abyste ušetřili čas, kdy CI nebuduje všechny platformy pořád.

Nová možnost nasazení

--build-only je nová možnost nasazení. To je užitečné, pokud chcete nejprve sestavit a po některých ověřeních pokračovat v nahrávání a nasazení. Více o tom v Cloud docs.

[email protected]

Díky Janu Küsterovi získal balíček http kompletní přepsání, aby bylo možné interně použít načítání. To vám má pomoci při migraci na načítání. To vám umožní používat aktuální http API, na které jste zvyklí, a bude nadále fungovat. Tím odstraníte problémy s ukončením podpory http. Ačkoli toto je konec balíčku a bude nyní zcela zastaralý.

Nový výchozí formát pro sestavení Android

Ve verzi 2.3.1 došlo ke změně výchozího výstupu pro aplikace Android Cordova. Nový výchozí formát je .aab , po oznámení společnosti Google, že od srpna budou muset nové aplikace používat tento nový formát.

Pokud stále chcete používat starý formát apk, použijte v příkazu build následující příznak:--packageType=apk

A mnohem více!

A to je jen začátek, existuje mnoho dalších menších oprav a vylepšení. Podrobný seznam všech změn najdete v seznamu změn pro Meteor 2.3.
Dnes můžete aktualizovat na Meteor 2.3.1 jako obvykle
meteor update --release 2.3.1

Pokud chcete přispět k beta verzím Meteoru svou zpětnou vazbou a testováním svých aplikací, neváhejte a zaregistrujte se do našeho komunitního Slacku a připojte se k našemu #beta-feedback kanál.

Pokud se vám moje práce líbí, podpořte mě na GitHubu Sponsors ❤️.