{"id":2103,"date":"2016-09-19T10:25:38","date_gmt":"2016-09-19T15:25:38","guid":{"rendered":"http:\/\/alejandroayala.solmedia.ec\/?p=2103"},"modified":"2016-09-19T10:28:28","modified_gmt":"2016-09-19T15:28:28","slug":"guia-javascript-instalacion-nodejs","status":"publish","type":"post","link":"https:\/\/alejandroayala.solmedia.ec\/?p=2103","title":{"rendered":"Gu\u00eda javascript. Instalaci\u00f3n NodeJS"},"content":{"rendered":"<p>NodeJs ya se encuentra disponible en los repositorios, as\u00ed que la instalaci\u00f3n es bastante sencilla:<\/p>\n<p>[bash] sudo apt-get install nodejs [\/bash]<\/p>\n<p><!--more--><\/p>\n<h3>Crear mi primer proyecto<\/h3>\n<p><strong>Node Package Manager (npm)<\/strong> facilita la compilaci\u00f3n, instalaci\u00f3n y actualizaci\u00f3n de m\u00f3dulos as\u00ed como la gesti\u00f3n de las dependencias. Con <strong>npm init<\/strong>, creamos el archivo <em><strong>package.json<\/strong><\/em> donde se van a ir agregando todas las dependencias que nuestro proyecto genere, como analog\u00eda podemos decir que este ser\u00eda nuestro archivo <em>pom.xml<\/em> cuando usamos <em>Maven<\/em> en proyectos <em>Java<\/em>. Creamos una carpeta que ser\u00e1 el contenedor y ra\u00edz de nuestro proyecto y una vez dentro de \u00e9l ejecutamos el siguiente comando:<\/p>\n<p>[bash]<br \/>\n$ npm init<\/p>\n<p>This utility will walk you through creating a<br \/>\npackage.json file.<br \/>\nIt only covers the most common items, and tries to guess<br \/>\nsane defaults.<br \/>\nSee `npm help json` for definitive documentation on these<br \/>\nfields and exactly what they do.<br \/>\nUse `npm install &amp;amp;lt;pkg&amp;amp;gt; &#8211;save` afterwards<br \/>\nto install a package and save it as a dependency in the<br \/>\npackage.json file.<br \/>\nPress ^C at any time to quit. <\/p>\n<p>name: (ejemplo1)<br \/>\nversion: (0.0.0) 0.0.1<br \/>\ndescription: Mi primer ejemplo NodeJS<br \/>\nentry point: (index.js)<br \/>\ntest command:<br \/>\ngit repository:<br \/>\nkeywords:<br \/>\nauthor: Alejandro Ayala<br \/>\nlicense: (BSD-2-Clause)<br \/>\nAbout to write to<br \/>\n\/home\/alejo\/WebstormProjects\/ejemplo1\/package.json:<br \/>\n{<br \/>\n  &quot;name&quot;: &quot;ejemplo1&quot;,<br \/>\n  &quot;version&quot;: &quot;0.0.1&quot;,<br \/>\n  &quot;description&quot;: &quot;Mi primer ejemplo NodeJS&quot;,<br \/>\n  &quot;main&quot;: &quot;index.js&quot;,<br \/>\n  &quot;scripts&quot;: {<br \/>\n    &quot;test&quot;: &quot;echo \\&quot;Error: no test specified\\&quot; exit 1&quot;<br \/>\n  },<br \/>\n  &quot;author&quot;: &quot;Alejandro Ayala&quot;,<br \/>\n  &quot;license&quot;: &quot;BSD-2-Clause&quot;<br \/>\n}<br \/>\nIs this ok? (yes)<br \/>\n[\/bash]<\/p>\n<p>Posteriormente mientras vamos agregando dependencias a nuestro proyecto, algunas librer\u00edas necesitan escribir en carpetas sin permiso, para arreglar esto y no usar sudo para las instalaciones podemos ejecutar los siguientes comandos:<\/p>\n<p>[bash]<br \/>\nsudo chown -R $(whoami) ~\/.npm<br \/>\n[\/bash]<\/p>\n<p>[bash]<br \/>\nsudo chown -R $USER \/usr\/local\/lib\/node_modules<br \/>\n[\/bash]<\/p>\n<p>Con esto hemos cambiado de propietario los directorios donde node necesita permisos de escritura.<\/p>\n<p>Cuando instalemos globalmente, es decir, usando <strong>npm install -g<\/strong>, necesariamente necesitamos permisos de administrador<\/p>\n<h4>EOF<\/h4>\n\n<div class=\"twitter-share\"><a href=\"https:\/\/twitter.com\/intent\/tweet?via=a1ejo_ayala\" class=\"twitter-share-button\" data-size=\"large\">Twittear<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>NodeJs ya se encuentra disponible en los repositorios, as\u00ed que la instalaci\u00f3n es bastante sencilla: [bash] sudo apt-get install nodejs [\/bash]<\/p>\n","protected":false},"author":1,"featured_media":2104,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[523],"tags":[526,524,525,527],"_links":{"self":[{"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/posts\/2103"}],"collection":[{"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2103"}],"version-history":[{"count":5,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/posts\/2103\/revisions"}],"predecessor-version":[{"id":2109,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/posts\/2103\/revisions\/2109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=\/wp\/v2\/media\/2104"}],"wp:attachment":[{"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alejandroayala.solmedia.ec\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}