Jesús Estévez
Just another simple developer
2012 2012 España
Google "Remember" :
bit.ly/2012-yr
Asp.net 4.5 included a
Bundling feature
Text
with @Lemoncode Samples
npm init
npm install webpack --save-dev
npm install babel-core --save-dev
npm install babel-preset-env --save-dev
npm install babel-loader --save-dev
{ "presets": [ "env", ] }
module.exports = { entry: ['./students.js'], output: { filename: 'bundle.js', }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader', }, ], }, };
Webpack.config.js
.Babelrc
const averageScore = "90";
const messageToDisplay = `average score ${averageScore}`;
document.write(messageToDisplay);
student.js
<html>
<head>
</head>
<body>
Hello Webpack 2!
<script src="bundle.js"></script>
</body>
</html>
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// Let's use some ES6 features
var averageScore = "90";
var messageToDisplay = "average score " + averageScore;
document.write(messageToDisplay);
bundle.js
Use bundle.js in .html
npm webpack
export class webComponent{
constructor(value){
this.value = `average score ${value}`;
this.appendToDoc = () =>{
document.write(this.value);
}
}
}
import * as c from './webComponent'
let myComponent = new c.webComponent("90");
myComponent.appendToDoc();
App.js
webComponent.js
<html>
<head>
</head>
<body>
WebPack Boiler Plate
<script src="bundle.js"></script>
</body>
</html>
var webComponent = exports.webComponent =
function webComponent(value) {
var _this = this;
_classCallCheck(this, webComponent);
this.value = value;
this.appendToDoc = function () {
document.write(_this.value);
};
};
npm start
bundle.js
Use bundle in .html
The new C&P
Text
C&P
Let Start Building reusable
"Web Components*"
/*template.html*/
<form ng-submit="todoAdd()">
<input type="text" ng-model="todoInput"
size="50" placeholder="Add New">
<input type="submit" value="Add New">
</form>
<br>
<div ng-repeat="x in todoList">
<input type="checkbox" ng-model="x.done">
<span ng-bind="x.todoText"></span>
</div>
<p><button ng-click="remove()">Remove marked</button></p>
//src/app.js
import {todoComponent} from './todoComponent'
import * as angular from 'angular'
var app = angular.module('myTodoApp', []);
app.component('todoComponent', todoComponent);
//src/todoComponent.js
function todoCtrl($scope) {
$scope.todoList = [{todoText:'Learn Angular 4', done:false}];
$scope.todoAdd = function() {
$scope.todoList.push({todoText:$scope.todoInput, done:false});
$scope.todoInput = "";
};
$scope.remove = function() {
var oldList = $scope.todoList;
$scope.todoList = [];
angular.forEach(oldList, function(x) {
if (!x.done) $scope.todoList.push(x);
});
};
};
export const todoComponent = {
template: require('../template.html'),
controller:todoCtrl
}
/*index.html*/
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body ng-app="myTodoApp" >
<h2>My Todo List</h2>
<todo-component />
<script src="dist/app_bundle.js"></script>
</body>
</html>
npm init
npm install webpack --save-dev
npm install webpack-dev-server --save-dev
npm install raw-loader --save-dev
npm install babel-core --save-dev
npm install babel-preset-env --save-dev
npm install babel-loader --save-dev
npm install angular --save
var webpack = require('webpack');
module.exports = {
entry: {
app: './src/app.js',
vendor: [
'angular',
]
},
output:{
filename:'dist/[name]_bundle.js'
},
module:{
rules:[
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.html$/,
exclude: /node_modules/,
loader: 'raw-loader',
},
]
},
devServer:{
port:8080,
}
};
{
"presets": [
"env",
]
}
webpack.config.js
.babelrc
npm start
No problem! All Samples in bit.ly/webpackSamples
by
By Jesús Estévez