Správičky 2 819 Blogy 948 Fórum 18 743

Zaujímavosti zo sveta

13.05 Antispam report Exchange 2013/…
blogCZSK
Nedávno jsem se setkal s prosbou, zda je možno udělat report nad funkcionalitou antispamu Exchange a trošku jsem narazil na problém, jak dos…
13.05 Pozvánka: konference, workshop…
blogCZSK
Níže jsme pro vás připravili přehled akcí, které jsou pro vás připraveny v příštích několika týdnech. Coding Bootcamp 19. 5. 2016 – Praha V …
12.05 Pozvánka: Nástroje a služby pr…
blogCZSK
Od vývoje přes nasazení po správu napříč platformami Rádi byste optimalizovali vývoj svých aplikací na různé platformy a nevíte jak? Zajímá …
12.05 System Center Configuration Ma…
blogCZSK
V minulém díle jsme nainstalovali SQL Server, který je nutný pro běh Configuration Manageru. Dnes nás čeká instalace WSUS, což je produkt, j…
11.05 Hovory od křivého stolu (5)
blogCZSK
A máme tu další díl českého video seriálu Hovory od křivého stolu (5). Pro toto vydání HKS jsme se ponořili do hlubin naší budovy a natočili…
11.05 Pozvánka: Coding Bootcamp Meet…
blogCZSK
V rámci pražského Coding Bootcampu budete mít možnost se naučit vše, co potřebuje moderní webový vývojář. Abyste měli představu, co bude náp…
10.05 Zajímavé kurzy a videa–MVA a C…
blogCZSK
I tento měsíc vám přinášíme výběr nejzajímavějších videí, kurzů a záznamů konferencí. Veškeré kurzy pak naleznete na portálu MVA a výuková v…
10.05 Azure Site Recovery – VMWARE (…
blogCZSK
Připravil jsem pro vás sérii článků, zabývající se technologií Azure Site Recovery. Konkrétně v šesti na sebe navazujících článcích se dozví…
09.05 DataScript: akční nabídka škol…
blogCZSK
Připravili jsme pro vás nabídku školení On-Demand. A jaké jsou výhody? nižší cena učíte se z pohodlí svého domova nebo kanceláře přístup mát…
05.05 System Center Configuration Ma…
blogCZSK
V předchozím díle jsme si nainstalovali prerekvizity potřebné pro běh Primary Site Configuration Manageru a také jsme připravili doménu pro …
20.04 Odkazy z prohlížeče – 20.4.201…
atasoft
CodeProject Video Transcoding and Streaming on the fly – CodeProject – přímo v prohlížeči (?) A Sample Code Submitted for Senior C# …
11.04 Linq a pracovní pohovor
mstr
Zjišťovat znalosti Linqu u pracovního pohovoru může být obtížné - s Linqem se asi setkal každý C# programátor, ale vždy záleží, do jaké hlou…
08.04 Linq - k čemu použít Aggregate…
mstr
K jednomu z předchozích článků, ve kterém jsem dal k dispozici cheatsheet pro Linq, se mne jeden známý zeptal, k čemu že je dobrý Aggregate …
27.03 Bezpečnost – věc veřejná
Poslední březnový den se v Praze uskuteční jednodenní konference o počítačové bezpečnosti SecPublica 2016. Jejím heslem je "securitas, res p…
16.03 Příklad na pohovor s programát…
mstr
Na blogu jsem uveřejnil několik příkladů z pohovorů s uchazeči o místo programátora. Dovolím si tedy uveřejnit jeden z dalších možných příkl…
15.03 IDisposable v příkladech
viga
Rozhraní IDisposable slouží k uvolnění “unmanaged” zdrojů. Nejčastěji to jsou různé objekty z Win32API (otevřené soubory, síťové spojení, GD…

Odpočívaj v pokoji Bower. Nech žije Libman! Či?

Liero - 18. 9. 2018 10:59 - 400 views

Bower bol Microsoftom odporúčaný package manager pre client side knižice v ASP.NET Core MVC/Razor projektoch. Je to už nejaká doba, čo sa jeho vývoj zastavil a jeho autori odporúčajú prejst na npm.

No je tu jeden problém: npm neumožnuje špecifikovať adresár, kam sa majú knižnice nainštalovať, napríklad /src/wwwroot/libs a preto je nevyhnutný Task runner ako Gulp. Napr pre také jQuery a Bootstrap je to značný overkill.

Preto si Microsoft povedal, že je čas na jednoduchý manažér knižníc pre scenáre, kde len treba stiahnuť hotový súbor, napríklad z CDNky. Toto je pomerne bežné v kombinácii so server side renderingom.

Funguje to takto:

Vyberiete si, odkial, konkretne ktore subory a presne kam sa maju nainstalovat. Libman.json vyzera takto:

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "jquery@3.2.1",
      "destination": "wwwroot\\scripts\\jquery",
      "files": [
        "jquery.min.js"
      ]
    }
  ]
}



LibMan offers the following benefits:

  • Only the library files you need are downloaded.
  • Additional tooling, such as Node.js, npm, and WebPack, isn't necessary to acquire a subset of files in a library.
  • Files can be placed in a specific location without resorting to build tasks or manual file copying.

https://blogs.msdn.microsoft.com/webdev/2018/08/31/library-manager-release-in-15-8/

 

Ak si aj vy myslíte, že ďaľší package manager je na nervy, podporte môj feature request v npm komunite:

https://npm.community/t/specify-destination-folder-and-filter-on-files-inspired-by-libman/1999

 

 


Daniel Turan

MCPD Web Developer, Certified Avanade SCRUM Professional Developer;
WPF, Silverlight, Windows Phone, Windowse Store app developer,
TypeScript, JavaScript

Článkov: 1, Správičiek: 96, Príspevkov vo fóre: 1553, Príspevkov v blogu: 0, Bodov: 9745
Najaktívnejší č.: 6
Profil používateľa

Reakcie

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 19. 9. 2018 8:36:22 harrison314

Takto, za mna, dalsi package manager je len reakcia na sucasny stav javascript sveta.
Okrem toho je mi sympaticky:
- da sa naisntalovat ako nuget balicek
- vzhladom na funkcionlitu to bude mat par kB
- nepotrebuje naisntalovane node.js, npm,...
- kvoli jquery a bootsrapu mi to nestiahne 1.3GB javascriptu

Ono z npm, glup-u a webpacku som uz otraveny, na to aby si stiahol jQuery a minifikoval jedno CSS-ko pomaly potrebujes dotiahnut pol gigabajtu malich js suborov, celkovo je to pomale. A pluginy do webpacku a gulpu su takmer bez dokumentacie, ked konecne clovek najde plugimn ktory potrebuje, zisti, ze nie je kompatibilny s aktualnou verziou webpacku, alebo ze nepodruje nainstalovanu verziu node.js, k tomu to depnedency hell a to chce clovek spravit jednoduchu vec. Plus cele je to velmi pomale. Plus akakolvek chyba vystreli necitalenou hlaskou niekde z utrob anonymnych funkcii webpaku.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 19. 9. 2018 19:06:57 Liero

mnou navrhovana feature do npm by vyriesila vsetky tieto problemy plus nebolo by to zavisle od .net

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 19. 9. 2018 19:16:27 harrison314

Ale stale by to bolo zavisle na nodejs.
Plus zavislost na .net (core) v .net-ovych projektoch akosi nevadi.

Ja vidim hlavne pouzitie na MVC aplikaciach, kde vyuzivas server rendering a potrebujes dotiahnut par suborov.

Hlavne sa mi paci, ze to nie je zavisle nejakom providerovi balickov. Ale je to v podstate wget na steroidoch.

Proste to riesi sucasnu situaciu, ked kvoli minifikacii css-ka alebo stiahnutie nejakej kniznice potrebujes dotiahnut tony javascriptu a desiatok ak nie stoviek balickov

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 20. 9. 2018 10:20:20 T (anonym)

@Liero:

cesta npm repo sa za zmenit, neviem z hlavy ale urcite ano
tahat js libku do wwwroot je podla mna zly practice, pretoze tam byva pribalene kadeco, z coho 2/3 nepotrebujes a ani netusis poriadne, co tam vsetko pribalene je
gulp (alebo webpack) na produkciu tak, ci tak potrebujes, ked robis nieco serioznejsie s js, kedze stary ms bundler bol na figu. Pouzivanie gulpu je pomerne jednoduche, problem su pluginy a breaking zmeny a siroka skala pluginov pricom kazdy kriva na inu nohu (kto kodoval v PHP & co, tento problem pozna :-)

tiez som hutal nad UC pre libman ale zatial som ho nenasiel...

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 20. 9. 2018 11:20:20 Liero

@T: Prosim, precitaj si spravicku, pripadne blog este raz.

v npm si nevies zmenit kam sa ma restornut konkretny package, vies iba prefixnut path ku node_modules.

A ja som praveze navrhoval, aby si si mohol vybrat, ktore subory chces a kam ich chces.

@harrison314: Iste, ale potom by sa to dalo pouzit aj mimo .NET (core). Napr php, ruby, java, ale aj cisto html/js/SPA projekty. Plus, o jeden package manager menej.

Ale keby do libmanu pridali podporu npm ako repozitaru, som spokojny.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 20. 9. 2018 11:32:44 Liero

@harrison314:
inak moje odporucanie pre teba by asi bolo:

v pripade SPA aplikacii sa spoliehaj na buildovaci system daneho frameworku (Angular CLI, create-react-app, etc..) a podla toho si vyberaj aj framework.

v pripade server rendered aplikacii nepouzivaj ziadny package manager a ukladaj si minifikovane libky do source control. Transformaciu napr SCSS do CSS nechaj na IDE a commituj aj CSS.

A finalny bundling v dev prostredi rob runtime, a do produkcie to mozes optimalizovat cez nejaky BUILD task vo VSTS.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 20. 9. 2018 14:03:25 duracellko

Ked chcete realny use case, tak tu je: https://github.com/duracellko/planningpoker4azure/tree/core

Mala, ale funkcna aplikacia. A na kompilaciu staci .NET SDK a netreba Node.JS.
Mozno, keby to pisem dnes od nuly, tak pouzijem webpack alebo nieco sofistikovanejsie. Ale prepisovat sa mi to zatial nechce. A LibMan mi pomohol vyhodit dependencies zo source control.

@Liero: Ja som zase odporca mat minifikovane subory v source controle. Alebo cokolvek auto generovane. Ked robim kode review, tak sa to tazko reviewuje.

Dokonca by sa mi pacilo keby auto generovanie *.resx -> *.designer.cs bola sucastou MSBuild a nie Visual Studio IDE.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 20. 9. 2018 17:36:28 T (anonym)

@liero:
preco ma zase zbytocne cvicis, ja som si precital toto:
"npm neumožnuje špecifikovať adresár, kam sa majú knižnice nainštalovať"
vs.
"v npm si nevies zmenit kam sa ma restornut konkretny package"
ak si to tak myslel, ok, ale aj tak mi to na realnom projekte nepomoze, chcem napr. spajat minifikovane scripty resp. minifikovat bundle scriptov, pripadne chcem vybuildovat len to, co fakt potrebujem cez amd.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 21. 9. 2018 8:25:37 Liero

@T: ok, beriem, mozno som mal spomenut, o com je ten moj request v npm komunite,

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 21. 9. 2018 9:23:58 harrison314

@liero:
- nehovorim o SPA, tam ma webpack/gulp,... zmysel (pouzitie specifikeho CLI v niecom pomaha, ale ked chce clovek nieco nestandardne zacne mat problemy),
- nehovorim o tom ked musis nieco zlozito bundlovat a kompilovat (TS) tam ma tiez webpack/gulp,... zmysel

Hovorim o statickych weboch, server renderingu a standatnych administracnych strankach, kde staci bootstrap, jQuery plus nejake dve kniznice.
Dany problem som vetcinou riesil tym, ze sa tie kniznice nakopirovli rucne do projekt, lebo to bolo lahsie ako pouzit NPM.

Naprikld to tvoje rienie neriesi pripady NPM kniznice z internymi zavislostami (balicky isArray, isObject, stringEmpty), alebo pouzivaju "rozfrckane" subory. uz som sa stretol s pripadom, ked som kvoli tomuto jednu JS kniznicu bundlovat pomocou webpaku, aj ked bola samostatne dostupna na CDN-ke.

A to, ze to nebudu pouzivat v PHP, Ruby, Pythone mi je fakt jedno (asi alibisticky pohlad), ty bi to nepouzili uz len pre to, ze to nejako suvisi s Microsoftom.

Proste LibMan riesi problemy s ktorymi sa stretvam.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 21. 9. 2018 12:11:35 Liero

@harrison314:
"Napriklad to tvoje rienie neriesi pripady NPM kniznice z internymi zavislostami".

No praveze by to malo riesit, proste si vies povedat ktore subory chces a hotovo. Nic viac sa nebude stahovat.

Inak neda sa ten krepy bundling spravit v MsBuild pomocou nejakeho nugetu?

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 21. 9. 2018 20:18:23 harrison314

@liero: tych nugetov bolo kedysi niekolko, neviem ako je dnesny stav.

Ten tvoj navrh, neviem ci sa ujme. Ale to iste vies spravit nejakym NPM cli nastrojom co spravi to iste.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 21. 9. 2018 20:47:49 T

@duracellko: resx...ved si zrus default tool na resx a potom z ms build volaj https://docs.microsoft.com/en-us/visualstudio/msbuild/generateresource-task?view=vs-2015 alebo volaj resgen
@harrison314:
pri tom Tvojom scenari...je to mozno lahsie nakopirovat ako pouzit npm, ale realne o kolko? pridanie par riadkov do package.json a par riadkov do gulpu, nebodaj tam mas este nejake ccska/sass, ikony a etc. a uz si tam...

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 23. 9. 2018 5:08:57 duracellko

@T: Vdaka za radu. Nenapadlo ma, ze GenerateResource vie generovat strongly typed classes. Aj ked to zrusilo intellisense.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 23. 9. 2018 5:11:27 duracellko

hmm.. zda sa, ze cross-site scripting ochrana na vyvojari.sk je striktnejsia, ako by som cakal. XML ako priklad v komentari je zakazane.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 24. 9. 2018 9:10:18 Liero

@harrison314: "Ale to iste vies spravit nejakym NPM cli nastrojom co spravi to iste"

Neviem to spravit, lebo ten CLI nastroj ma kopec zavislosti + treba ho zbytocne stahovat + stale to neriesi zakladny problem a sice ze si neviem vybrat, ktore subory ma NPM stahovat.

# RE: Odpočívaj v pokoji Bower. Nech žije Libman! Či? 25. 9. 2018 7:26:49 harrison314

@T: mne na to mnajviac vadi to, ako je to strasne pomale, plus tam taham dalsie zavislosti s potencialnym dependency hell.

@Liero:
"Neviem to spravit, lebo ten CLI nastroj ma kopec zavislosti + treba ho zbytocne stahovat + stale to neriesi zakladny problem a sice ze si neviem vybrat, ktore subory ma NPM stahovat."
Uz chapem ako si to myslel.

Pridať reakciu

Titulok:
Meno:
Url:
Koľko je 22 + 4?
(ochrana proti spamu)
Komentár:

Najaktívnejší užívatelia
1. 37810 b. photo vlko
2. 21520 b. photo T
3. 15965 b. photo spigi
4. 15450 b. photo Anonymous
5. 11120 b. photo dudok
6. 9745 b. photo Liero
7. 6920 b. photo siro
8. 6245 b. photo slavof
9. 5395 b. photo duracellko
10. 4685 b. photo xxxmatko