{"id":12157,"date":"2016-12-12T18:03:04","date_gmt":"2016-12-12T17:03:04","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12157"},"modified":"2016-12-13T14:09:24","modified_gmt":"2016-12-13T13:09:24","slug":"bower-un-package-manager-per-il-web","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/bower-un-package-manager-per-il-web\/","title":{"rendered":"Bower: un package manager per il web"},"content":{"rendered":"<p>Quando un progetto per funzionare ha bisogno di una o pi\u00f9 librerie esterne &#8211; generalmente offerte da altri sviluppatori &#8211; si dice che ha dipendenze da soddisfare. In ogni tecnologia di programmazione esiste uno strumento di gestione delle dipendenze e, nel mondo Javascript, \u00e8 famosissimo NPM derivante direttamente da\u00a0<a href=\"http:\/\/www.devapp.it\/wordpress\/introduzione-a-node-js\/\" target=\"_blank\">Node.js<\/a>. Ne esiste un altro per\u00f2 la cui fama \u00e8 cresciuta molto ultimamente in quanto \u00e8 comodissimo per integrare librerie lato client, come le classiche tecnologie web, al di fuori di un&#8217;applicazione Node: stiamo parlando di\u00a0<a href=\"https:\/\/bower.io\/\" target=\"_blank\">Bower<\/a>.<\/p>\n<p>Bower comunque va installato mediante <em>npm<\/em>:<\/p>\n<pre class=\"lang:sh decode:true \">npm install -g bower<\/pre>\n<p>e da questo momento in poi sar\u00e0 utilizzabile come comando a s\u00e8 stante.<\/p>\n<p>Potremo quindi richiedere un pacchetto per animare le nostre web app tramite il comando install:<\/p>\n<pre class=\"lang:sh decode:true \">bower install jquery<\/pre>\n<p>Troveremo cos\u00ec nel file system una cartella di nome <em>bower_components<\/em> all&#8217;interno della quale sar\u00e0 reperibile la libreria richiesta &#8211; in questo caso jQuery &#8211; e seguendone il percorso potremo integrarla con le pagine web mediante il consueto tag &lt;script&gt;.<\/p>\n<p>Bower funziona in tutto e per tutto come un gestore di pacchetti, oltre a install possiede altri comandi:<\/p>\n<ul>\n<li><em>uninstall<\/em> per richiedere la disinstallazione di un pacchetto;<\/li>\n<li><em>update<\/em> per l&#8217;aggiornamento;<\/li>\n<li><em>list<\/em> per ottenere l&#8217;elenco dei pacchetti scaricati.<\/li>\n<\/ul>\n<p>Bower e NPM sono due strumenti ottimi per gestire le dipendenze in Javascript ed ora la differenza che intercorre tra loro dovrebbe essere pi\u00f9 chiara: il primo per i progetti basati su front-end, il secondo per tutto ci\u00f2 che si integra con Node.js.<\/p>\n<p>E voi come organizzate i vostri progetti Javascript? Non scaricherete mica tutte le librerie necessarie a mano, vero? Fateci sapere!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando un progetto per funzionare ha bisogno di una o pi\u00f9 librerie esterne &#8211; generalmente offerte da&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12624,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7],"tags":[1807,1772,1538,1808,1598],"class_list":["post-12157","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-strumenti-di-sviluppo","tag-bower","tag-dev-tools","tag-javascript","tag-js-tools","tag-web-developers"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12157"}],"version-history":[{"count":6,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12157\/revisions"}],"predecessor-version":[{"id":12626,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12157\/revisions\/12626"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12624"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}