Ir al contenido principal

Introduction to web frontend

The "web 2.0" is called to the extensive dynamic loading (of web pages based on user interaction), all this "magic is thanks to javascript ... But JavaScript was widely adopted and needed a system of modules to allow the Modular code design; cos the global object was/is error prone and just bad way. 

From the creators of javascrip Nodejs was born , later NPM was integrated, with the growing wave the browserfy was created , then bundlers such as gulp and grunt arrived, and finally today we have the webpack tool.


WHAT IS NODEJS?

Node.js is a runtime environment that includes everything you need to run a program but written in JavaScript. The creators of javascript, made that to run any javascript code like local application, it means instead of requiring a web browser could be defined and even executed as any local application.

If you develop in php, java, net, nodejs .. it is another one like those .. as for example php does, you can run your service with “php -S localhost: 3000”; so, nodejs can do the same with “npx http-server”, or by defining the parameters with an "app.js" and executing "node app.js" according to the port that is defined.

If I have php, java etc, then what is nodejs good for?

Currently because the popular npm comes with it .. it is the quickest reason, however ..

Node.js uses an event-driven non-blocking input (request) and output (response) model.

The original purpose of Node.js is to create fast network applications, since it is capable of handling a large number of simultaneous connections with a high level of performance, which is equivalent to high scalability, but not programming heavy operations like convert 4k videos as an extreme example, but to handle 4 million requests of 30kilobytes as an exact example, to this amount of inputs it will respond quickly to all the responses, which in a web server will produce blocks for all the internal processes that it involves.

What is NPM?

NPM is a package manager for Javascript. It is a kind of GooglePlay (for thos stupids phone depends) or in fact it is a kind of Maven (if you use Java it will sound like you) for Javascript packages, that is, it is used to install and manage versions of packages commonlly made in javascripts now today named libraries.

NPM has long been the benchmark for javascript package managers, but a competitor has emerged for some time: Yarn.

What is YARN?

The javascrit library manager much faster and more powerful, but the same thing happens with whatapps vs telegram, the first one is very bad but common people already have it and don't even know how it really is.

Ironically, but since yarn is faster and more secure, it depends on nodejs, so with having nodejs you already have npm, which saves a lot of learning time and avoids complications.


Tree Shaking

Base term in code modularization. Modules (using in fact js code) are analyzed at the level of imports and exports, and when it finds a module that imports or exports content and is not used, it discards it to avoid having extra code (dead code) and wasting resources. It is based on the static structure of the ES2015 module syntax (alias harmony modules). The name and concept have been popularized by the ES2015 module rollup and integrated recently in webpack.

Understanding is necessary and basis for the manufacture of the "bundlers" which are used to produce CSS / JS for production.


BUNDLERS and js modules

Then to avoid problems.. JS code is modularized, in different files, so that each file has a single responsibility, and they are used with the ES6 imports, these are organized using the Tree shaking and Dynamic imports technique.

Bundlers is packing modules (multiple sources) of JavaScript into a single file. CDNs are an example of this. So bundlers are tools that frontend developers use to package JavaScript modules and they run in the browser (rather than by hand on your website). In short, plus all the JS and CSS and generate a single JS and / or CSS organizing the common code. Today we have webpack, rollup, fusebox, parcel, etc.

  • JavaScript grew too big, a lot of code, and it needs to be modular, usage of global variables was prone to overwriting, producing errors.

  • The module package helped us to combine various JavaScript modules into one JavaScript file, and even order the way variables and pieces of code are loaded.

  • Some ways to do that were defined: CJS and AMD, but also UMD.

    • Synchronous CJS (CommonJS) targeting server-side JavaScript, like nodejs for example.

    • Asynchronous AMD (Asynchronous Module Definition) intended for the browser, such as RequireJS for example.

    • UMD (Universal Module Definition). Common JavaScript code in headers that allows loading js sources no matter their anchor, either at the beginning or at the end.

Most of today's bundlers have very similar features. The only characteristic that varies between them is CJS / ES shaking trees. From all the bundler packages, Webpack has the most consistent built-in tree support for ES and CJS modules. Google has the most mature ... but it is difficult to install ... therefore all people now already adopted Webpack since rollup does not have this standars very mature.

  • webpack:

    • use the module map

    • use the wrap function for each module

    • has runtime code that pastes the module together

  • rollup:

    • a flatter and smaller package

    • does not use module wrap function

    • Order matters, requires dependency-based sorting

    • circular dependency may not work


WHAT IS WEBPACK?


It is a Module Bundler that allows you to export your modules to static files such as javascript, css, etc., making it possible to pass the code from the server to the browser. Also, it allows you to do similar tasks like Gulp, which lets us conclude that WebPack is the next step to Browserfy and Gulp. Webpack depends on nodejs and installs with npm.


Webpack, Tree Shaking y Dynamic imports

Webpack cannot know in advance if the dynamic import is going to be used at some point, so in those cases it cannot apply Tree Shaking and it cannot discard dynamic imports that will never be used. WHY WHEN USING WEBPACK YOU MUST BE CLEAR WHAT IT WILL BE USED AND IN WHAT WAY.


What is Grunt?

Program to automate repetitive tasks such as the compilation of css, the execution of tests; in a file "grunfile.js" these are defined and with a command we executes them. This is defining task chains, if one breaks the other does follow always if possible. It depends on nodejs and is installed with npm.

What is Gulp?

Program to automate development tasks, not just common repetitive tasks, it is based on a pipe (Unix pipes) in a file, the input "default" towards more inputs instead of chaining tasks, therefore modifying the flow is simple and also the code Resulting is very easy to read: It depends on nodejs and is installed with npm.

For beginners, the recommended ones are Gulp and webpack in order to gain experience.


SO THEN for everything I always need NODEJS:

a) DEBIAN INSTALLATION

curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

echo "deb https://deb.nodesource.com/node_12.x $(lsb_release -s -c) main" >> \
/etc/apt/sources.list.d/50nodejs.list
echo "deb https://deb.nodesource.com/node_10.x $(lsb_release -s -c) main" >> \
/etc/apt/sources.list.d/50nodejs.list
echo "deb https://deb.nodesource.com/node_9.x $(lsb_release -s -c) main" >> \
/etc/apt/sources.list.d/50nodejs.list
echo "deb https://deb.nodesource.com/node_8.x $(lsb_release -s -c) main" >> \
/etc/apt/sources.list.d/50nodejs.list
apt-get update
apt-get remove nodejs npm
apt-get install nodejs

Note that if you have old debian versions you can still use nodejs version 8.X or 9.X depending on the case, and will skip any new version.


b) ALPINE INSTALLATION

There are two options .. the direct tar: https://unofficial-builds.nodejs.org/download/release/v12.18.3/ or https://unofficial-builds.nodejs.org/download/release/v14.8.0/ choosing the file that contains the word "muslc". Or else installing from the Alpine repos like this:

cat > /etc/apk/repositories << EOF; $(echo)
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
http://dl-cdn.alpinelinux.org/alpine/v3.12/main
EOF
apk update
apk install nodejs npm
cat > /etc/apk/repositories << EOF; $(echo)
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
EOF
apk update

Note that if you have an old alpine linux .. from alpine linux 3.4 to 3.10 you can use the package from alpine 3.12 to install it on old versions of alpine linux and be up to date.



ALSO YARN CAN BE AS A PACKAGE :

a) DEBIAN INSTALLATION


curl -sSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

echo "deb https://dl.yarnpkg.com/debian/ stable main" >> \
/etc/apt/sources.list.d/50yarnjs.list
apt-get update
apt-get install --no-install-recommends yarn


The package depends on a type of "node" that can be "nodejs" or the same one that yarn provides, for this it is alias node = nodejs .


b) ALPINE INSTALLATION

There are two options .. the direct curl -o- -L https://yarnpkg.com/install.sh | bash . Or else installing from the Alpine repos like this:

cat > /etc/apk/repositories << EOF; $(echo)
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
http://dl-cdn.alpinelinux.org/alpine/v
3.12/main
EOF
apk update
apk install
yarn
cat > /etc/apk/repositories << EOF; $(echo)
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
EOF
apk update



Note that if you have an old alpine linux .. from alpine linux 3.4 to 3.10 you can use the package from alpine 3.12 to install it on old versions of alpine linux and be up to date.


Comentarios

Entradas más populares de este blog

R.U.S.N.I.E.S. http://rusnies.opsu.gob.ve/

(ACTUALIZADO) la pagina fue reestablecida hay muchos cambios pero los usuarios no lo notaran, para verlos o informacion haz click aqui rusnies cambios y consejos para verlos 1) primer dia no se pudo hacer login, ni recuperando password! 2) segundo dia (mas abajo) al fin logeado! 3) para poder aunquesea ver tu planilla, pulsa aqui: planilla rusnies, soluciones algunas! 4)y aqui: tercer dia, algunos detalles arreglado, pero... todos los defectos son algo raros! -si no puedes entrar lee mas abajo, se explica porque y como acceder a tu cuenta en el R.U.N.E.S. -ojo quiero aclarar que un monton de inutiles no ingresaban bien la direccion y por ello no llegaban a ver nunca la pagina! porque ponian la "gov" en vez de "gob" ya que el pedazo de periodico no sabe escribir! 1) Primer dia del R.U.N.I.E.S. : (powered by apache+php+debian, pero estupidizado por los TSU y ingenieros informaticos graduados, que creen saber de programacion!) Cuan triste es ver m...

planilla de rusnies, algunas soluciones! principalmente para los que ya la hicieron!

(ACTUALIZADO) LEER PRIMERO ANTES DE COMENTAR POR FAVOR! la pagina del rusnies ya esta activa hay muchos cambios que los usuarios no notaran perro estan listados, para verlos haz clik aqui rusnies cambios un tip para los que ya la generaron! si conoces la URL de tu planilla (termina en letras mayusculas) puedes ingresarla directamente y obtendras la planilla! Los que tenga el gran Konqueror podran guardarla como si fuese un archivo cualquiera! el resto se les empotrara en los navegadores! pudiendo imprimirla pero no guardarla! esto se puede porque creo la peticion se hace directamente al php y este genera el postscript de la planilla! para los que no han generado su planilla pueden usar la chache de google y listo, como! hagan una busqueda del google para rusnies! pero no le den click al link, en la misma entrada esta unas letricas que dicen "en cache", si dan click ally podran entrar (funciona en la mayoria de los casos) Lo de la cahce sirve mas de noche, de di...

rusnies actualizada, nuevo php y apache actualizado!

AL parecer los ineptos tardaron mas de 5 dias normalizando una actualizacion de apache y php, aparte de ajustar configuraciones para evitar DOS y cuellos de botellas! ANALISIS PROFUNDO, algunos consejos Y ESPECTATIVAS POSITIVAS: Me complace felicitar a los "tecnicos" encargados ya que lograron reestablecer la normalidad en la web! (hasta ahora)! pero.... LAstimosamente las personas que hayan hecho la planilla deberan realizarla de nuevo CUIDADOSAMENTE,porque ineptamente los datos anteriores ahora no coordinaran! (eso era obvio de esperar!) debido a las actualizaciones que hicieron en los codigos fuentes relacionadas con la DB y los datos actuales! (los cuales estaban bien viejitos) LASTIMOSAMENTE TAMBIEN.. los datos se generan mal, deben tener cuidado y no imprimir a la ligera aunque esta informacion esta de mas pues cualquier persona con 4 dedos de frente revisa dos veces un evento tan importante como dicho registro! PARA LOS PROGRAMADORES les recomiendo lean el fina...

Venezuela Real : cuidado con basura mediatica

El miundo entero esta lleno de gente "pila", "avispada", en pocas palabras gente que solo vive de aprovechar oportunidades, llamandole a esta actividad burda "trabajo"! y venezuela desgraciadamente no es la excepcion, pue que en cualquier pais hay gente asi! Buscando informacion del sistema de educacion superior llege a una pagina estilo periodico (poco original, hacer de las entradas de un blog, un "multiperiodico") El blog es puro criticar, leyendo las primeras lineas hay objetividad, pero los articulos intentan demostrar desde un "falso punto neutral" oposicionismo, pero ninguna solucion.. Es facil criticar, dificil es mejorar... aprende a ser gente, no chismosa! Los gerentes y "profesionales" en el mundo entero es lo que hacer, criticar y culpar, esperando que les solucionen los problemas, justo como el marco usuario-guindo, donde el usuario estupidamente espera que un "flamante" encorbatado, le solucione la ...

Debian vs Devuan - the complete guide to choose

Devuan project aims to made a complete Linux distribution, but the fact its that tracks 90% of the Debian work. This article are up to date to Aug 2021 with release of bullseye. Debian its the mother of most famous distros, including Devuan! But must be considering that Devuan are now more faster but more. so lest see some important thing respect the recently "/usr merge" and "systemd home invassion" incoming things in future: We have two parts, overall differences, and more deep technical differences, recommended for those that will be used more than only to see movies or browse the internet! Before read the complete article , i currently used Devuan as main system, but please take in consideration that almost all notes seems negative; why? well Devuan are more efficient rather than Debian .. but if we take the overall user vision.. Devuan will fail as complete solution .

RTPmedia managers: rtpengine vs rtpproxy complete quick info

The idea is to permanently listen internally on the UDP port or on a local socket, controlling SIP signals messages. That is to say to control the flow of information and to where the answers are sent by means of these commands. Since these signals do not go directly to the SIP service but to the RTP NAT software, then the SIP service can tell the RTP service "give me that media stream, I know what to do" after sending it internally (to some other service) and receive an answer and then deliver it again and say "here is the flow response, send it to that device".

iso linux debian venenux tools

VNZ CD EMU tools suite now for i386(sarge-etch-lenny) and amd64(etch-lenny) ahora para i386(sarge-etch-lenny) y amd64(etch-lenny) For one reason or another, you may have image files laying around that you would like to access under Linux. Here are some nifty utilities to convert those pesky 'GUINdows' images into something Linux can understand (standard .iso format). Por una razon u otra, tu puedes tener que quisieras acceder en linux, Estas son algunas utilidades para convertir estas pestilentes 'GUINdows' imagenes en algo que linux pueda entender (imagen iso estandar) archivos imagenes Don't expect error correction codes and the like to be preserved, just the data... Generally speaking, these types of things are pretty irrelevant on linux to begin with. If you legally backed up some software of yours and made a 1:1 image of it under Windows, more than likely, your resulting ISO from the programs below will not contain this copy protection data. For o...

lista de chavista para aporrealos busquense aqui

NOTA : este no es un sitio escualido ! favor los chavistas leer primero, la estupidez agrava la situacion de chavez! la idea es ver lo que los escualidos hacen.... para restringir los chavistas n la red. lista fanatica de el sitio que restringe los mail y ip con tendencia chavista, segun ellos, este servicio es un favor publicado para aporrealos.. gracias sr PICCORO http://www.noolvidaremos.com/emailschavistas.html Lista de emails de chavistas actualizado 2008-Enero-15. No se han agregado mas emails solo se ha reformateado la lista para que sea mas agradable a la vista. Actualmente tenemos listas de otras comunidades, estamos esperando recaudar mas informacion para integrarlas todas. 7518521@hotmail.com a_paries@hotmail.com aangel497@gmail.com aantonio27@yahoo.com aarismendi14@hotmail.com abdallahdlp@hotpop.com abrilinsondable@gmail.com acjdoc14@hotmail.com acosta.ali@hotmail.com adelaca3101@gmail.com administrystaff@hotmail.com adolfogil2021@hotmail.com adritacjm@yahoo.es a...

Silverhawks+Thndercats : por que nos gusto a pesar de tener cosas ilogicas y mongolicas? E IBAN ESTAR JUNTOS!!!

Recientemente se realizo el Wondercon que ahora le dicen ThunderCon pero eso lo digo al final, esto es mas importante (para llorar) porque los nuevos thundercats son una cagada, no se emocionen el argumento es peor!! Pero hay mas los nuevos silverhawks (en preproduccion) es una basura!!!  De todas manera los viejos no eran la gran vaina, aqui explico porque: jejej les voy hacer recorda tiempos atras, si asi de malo soy, pero entre "tundelcats" y "j-alcones galacticos" despues de años analizo la "vaina" y me doy cuenta que quitando ciertos detalles el producto animado de los cuales cito son ESTUPIDOS! Eso no es nada, estas dos producciones iban estar juntas en un dia proximo (que llego tarde) vean esta foto del promo: Pero la pregunta es : ¿Porque gusto? La respuesta es simple: ciertos secuencias de animacion y la apariencia de los personajes. Antes de escribir de manera tecnica el porque le dejo este mensage a los tres que seguro les dara un inf...

Javascript: forms sin/without submit

Javascript : enviar formulario sin boton submit / form without submit button This code is a formulary, but submit button are a simple link!. Can be used better designed websites. Este codigo es un formulario, pero el boton submit es un link simple. Puede ser usado para mejorar el diseno. <FORM NAME="myForm" METHOD='GET'> input <INPUT TYPE="text" NAME="parameter1" VALUE='value1' SIZE=20> <BR> <P onClick="javascript:document.myForm.submit();" style='cursor:hand;' >click aqui</P> and sent whitout button submit.. </FORM> the trick is that the mouse event "onclick" defines at click release the execution of submit event document, adicionaly, the style is definet as "cursor:hand" for better multibrowser support that the "onmouseover" event, but this last is better for old browsers. El truco es...

Popular

R.U.S.N.I.E.S. http://rusnies.opsu.gob.ve/

(ACTUALIZADO) la pagina fue reestablecida hay muchos cambios pero los usuarios no lo notaran, para verlos o informacion haz click aqui rusnies cambios y consejos para verlos 1) primer dia no se pudo hacer login, ni recuperando password! 2) segundo dia (mas abajo) al fin logeado! 3) para poder aunquesea ver tu planilla, pulsa aqui: planilla rusnies, soluciones algunas! 4)y aqui: tercer dia, algunos detalles arreglado, pero... todos los defectos son algo raros! -si no puedes entrar lee mas abajo, se explica porque y como acceder a tu cuenta en el R.U.N.E.S. -ojo quiero aclarar que un monton de inutiles no ingresaban bien la direccion y por ello no llegaban a ver nunca la pagina! porque ponian la "gov" en vez de "gob" ya que el pedazo de periodico no sabe escribir! 1) Primer dia del R.U.N.I.E.S. : (powered by apache+php+debian, pero estupidizado por los TSU y ingenieros informaticos graduados, que creen saber de programacion!) Cuan triste es ver m...

planilla de rusnies, algunas soluciones! principalmente para los que ya la hicieron!

(ACTUALIZADO) LEER PRIMERO ANTES DE COMENTAR POR FAVOR! la pagina del rusnies ya esta activa hay muchos cambios que los usuarios no notaran perro estan listados, para verlos haz clik aqui rusnies cambios un tip para los que ya la generaron! si conoces la URL de tu planilla (termina en letras mayusculas) puedes ingresarla directamente y obtendras la planilla! Los que tenga el gran Konqueror podran guardarla como si fuese un archivo cualquiera! el resto se les empotrara en los navegadores! pudiendo imprimirla pero no guardarla! esto se puede porque creo la peticion se hace directamente al php y este genera el postscript de la planilla! para los que no han generado su planilla pueden usar la chache de google y listo, como! hagan una busqueda del google para rusnies! pero no le den click al link, en la misma entrada esta unas letricas que dicen "en cache", si dan click ally podran entrar (funciona en la mayoria de los casos) Lo de la cahce sirve mas de noche, de di...

rusnies actualizada, nuevo php y apache actualizado!

AL parecer los ineptos tardaron mas de 5 dias normalizando una actualizacion de apache y php, aparte de ajustar configuraciones para evitar DOS y cuellos de botellas! ANALISIS PROFUNDO, algunos consejos Y ESPECTATIVAS POSITIVAS: Me complace felicitar a los "tecnicos" encargados ya que lograron reestablecer la normalidad en la web! (hasta ahora)! pero.... LAstimosamente las personas que hayan hecho la planilla deberan realizarla de nuevo CUIDADOSAMENTE,porque ineptamente los datos anteriores ahora no coordinaran! (eso era obvio de esperar!) debido a las actualizaciones que hicieron en los codigos fuentes relacionadas con la DB y los datos actuales! (los cuales estaban bien viejitos) LASTIMOSAMENTE TAMBIEN.. los datos se generan mal, deben tener cuidado y no imprimir a la ligera aunque esta informacion esta de mas pues cualquier persona con 4 dedos de frente revisa dos veces un evento tan importante como dicho registro! PARA LOS PROGRAMADORES les recomiendo lean el fina...

Venezuela Real : cuidado con basura mediatica

El miundo entero esta lleno de gente "pila", "avispada", en pocas palabras gente que solo vive de aprovechar oportunidades, llamandole a esta actividad burda "trabajo"! y venezuela desgraciadamente no es la excepcion, pue que en cualquier pais hay gente asi! Buscando informacion del sistema de educacion superior llege a una pagina estilo periodico (poco original, hacer de las entradas de un blog, un "multiperiodico") El blog es puro criticar, leyendo las primeras lineas hay objetividad, pero los articulos intentan demostrar desde un "falso punto neutral" oposicionismo, pero ninguna solucion.. Es facil criticar, dificil es mejorar... aprende a ser gente, no chismosa! Los gerentes y "profesionales" en el mundo entero es lo que hacer, criticar y culpar, esperando que les solucionen los problemas, justo como el marco usuario-guindo, donde el usuario estupidamente espera que un "flamante" encorbatado, le solucione la ...

Debian vs Devuan - the complete guide to choose

Devuan project aims to made a complete Linux distribution, but the fact its that tracks 90% of the Debian work. This article are up to date to Aug 2021 with release of bullseye. Debian its the mother of most famous distros, including Devuan! But must be considering that Devuan are now more faster but more. so lest see some important thing respect the recently "/usr merge" and "systemd home invassion" incoming things in future: We have two parts, overall differences, and more deep technical differences, recommended for those that will be used more than only to see movies or browse the internet! Before read the complete article , i currently used Devuan as main system, but please take in consideration that almost all notes seems negative; why? well Devuan are more efficient rather than Debian .. but if we take the overall user vision.. Devuan will fail as complete solution .