Master Lemoncode
Webpack sesión 3
por Jesús Rodríguez Rodríguez

@Foxandxss

Qué tiene un package.json?
{
"name": "my-library",
"version": "1.0.0-alpha.1",
"description": "Super library about nothing in special",
"homepage": "https://gihub.com/example/my-library",
"bugs": "https://gihub.com/example/my-library/issues",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/example/my-library.git"
},
"author": "Paquito <paquito@pelotes.com>",
"keywords": ["awesome", "useless", "example"]
}Metadatos:

Qué tiene un package.json?
{
"scripts": {
"start": "webpack-dev-server --config=dev.webpack.config.js",
"build:dev": "rimraf dist && webpack --config=dev.webpack.config.js",
"build:prod": "rimraf dist && webpack -p --config=prod.webpack.config.js",
"lint": "tslint ./src/**/*.ts",
"test": "karma stasrt karma.conf.js"
}
}Scripts:

Qué tiene un package.json?
{
"dependencies": {
"@angular/core": "4.0.0",
"rxjs": "5.2.0"
}
}Dependencias:
Dependencias de desarrollo:
{
"devDependencies": {
"webpack": "2.2.1",
"webpack-dev-server": "2.3.0"
}
}
Qué tiene un package.json?
{
"peerDependencies": {
"webpack": "2.2.1"
}
}Peer dependencies:
Dependencias opcionales:
{
"optionalDependencies": {
"fsevents": "1.1.1"
}
}
Un poco de historia...
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/fastclick/0.6.7/fastclick.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.0.0/FileSaver.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jszip/2.4.0/jszip.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-animate.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-touch.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-sanitize.js"></script>
<script src="ui-bootstrap-tpls-1.5.3.min.js"></script>
<script src="assets/plunker.js"></script>
<script src="assets/app.js"></script>
<script src="assets/smoothscroll-angular-custom.js"></script>
<script src="assets/uglifyjs.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/2.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="assets/rainbow.css"/>
<link rel="stylesheet" href="assets/demo.css"/>
</head><head>
<script src="bundles/app.js"></script>
<script src="bundles/vendor.js"></script>
<link href="bundles/app.css" rel="stylesheet"/>
</head>
CommonJS / CommonJS2
// calculadora.js
function suma(n1, n2) {
return n1 + n2;
}
function resta(n1, n2) {
return n1 - n2;
}
module.exports = {
suma: suma,
resta: resta
};// app.js
var calculadora = require('./calculadora');
calculadora.suma(10, 10);
calculadora.resta(5, 3);export.dividir = (num1, num2) => num1 / num2;
AMD
define('nombre/modulo', ['dep1', 'dep2', 'dep3'],
function(dep1, dep2, dep3) {
// Nuestro código aquí
// Definimos el módulo devolviendo algún valor
return function() { };
});require(['nombre/modulo'], function(modulo) {
// hacer algo con el módulo
});
ES2015
// calculator.js
export const pi = 3.14159;
export function suma(num1, num2) {
return num1 + num2;
}// app.js
import { pi, suma } from './calculator';
suma(pi, pi);
UMD
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["rightPad"] = factory();
else
root["rightPad"] = factory();
})(this, function() {
Semver


Instalando versiones
Gorrito (por defecto)
"paquete": "^4.0.0"Tilde:
"paquete": "~4.1.2"Fijo:
"paquete": "4.1.2"Master lemoncode - Webpack
By Jesus Rodriguez
Master lemoncode - Webpack
- 508