webpack + babel
webpack设计思想:不区分.png .css .js 等文件,都视为一个模块。通过require导入,loader加载器编译之后打包在一个主js文件里。
优势:减少http请求。
1. webpack的初级配置
新建项目:F:/wepback
全局node安装webpack :cnpm install webpack -g
项目node安装webpack : f: ==>cd webpack ==> cnpm install webpack --save-dev
新建webpack.config.js文件
项目结构:

//main.js
let one = 'Hello Word!';
document.write(`<h1>${one}</h1>`); //firth.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="bundle.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
</body>
</html>
//webpack.config.js module.exports ={
entry:'./main.js',
output:{
filename:'./bundle.js' // bundle.js打包后的文件名,默认为同级目录下。
}
}
node命令行: webpack
2.配置基本配置:
在需要打包的主文件里,即entry的入口文件内可以通过require导入各种模块,包括css文件等。
初始化package.json 文件 : cnpm init
安装babel:用到es6才安装 cnpm install --save-dev babel-loader babel-core cnpm install --save-dev babel-preset-latest cnpm install --save-dev babel-polyfill
var webpack = require("webpack");
var path = require("path");
module.exports ={
entry:{
admin:'./admin/index.js', //入口文件最开始地方添加:require("babel-polyfill"); 用到es6才需要添加
consumer:'./consumer/index.js'
},
plugins:[
new webpack.optimize.UglifyJsPlugin() //打包插件,此插件为压缩代码
],
output:{
path:path.join(__dirname,'dist'), //path :__dirname为文件名,在dist文件下生成。
filename:'[name].bundle.js' //[name]取得是entry的key值。即在dist下生成了admin.bundle.js文件和consumer.bundle.js文件。
},
module:{
loaders:[
{test:/\.js$/,loader:'babel-loader',query:{presets:['es2015']}} //es6编译成es5
]
}
}
3.热替换和自动更新。
cnpm install webpack webpack-dev-server -g
cnpm install webpack webpack-dev-server --save-dev
修改package.json 文件:

修改webpack.config.js文件 : 只需加 publicPath:'/dist/' 这一步

node命令行:webpack
node命令行:webpack-dev-server

网页打开:http://localhost:8080/
修改文件后,浏览器会自动更新。
4.es6项目

index.js文件:
require("babel-polyfill");
require('./es6/import.js');
import {Fun} from "./es6/export";
let fun = new Fun();
fun.getName ='WANG';
let yie = fun.getName();
console.log(yie.next());
console.log(yie.next());
export.js:
class Fun {
constructor(){
this.name = [];
};
get getName(){
if(this.name.length == 0){
return '未添加姓名';
}else{
return function* (){
for(var value of this.name){
yield value;
}
return '遍历完成1';
}
}
};
set getName(name){
this.name.push(name);
};
}
export {Fun};
import.js:
import {Fun} from "./export";
class Name extends Fun{
isSuccess(){
alert('yes 继承成功1');
}
}
var name =new Name();
name.isSuccess();
webpack.config.js:
var path = require('path');
module.exports = {
entry:"./index.js",
output:{
path:path.join(__dirname,'dist'),
publicPath:'/dist/',
filename:'index.js'
},
module:{
loaders:[
{
test:/\.js$/,
loader:'babel-loader',
query:{
presets:['es2015']
}
}
]
}
}
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="dist/index.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
webpack + babel的更多相关文章
- webpack+babel项目在IE下报Promise未定义错误引出的思考
低版本浏览器引起的问题 最近开发一个基于webpack+babel+react的项目,一般本地是在chrome浏览上面开发,chrome浏览器开发因为支持大部分新的js特性,所以一般不怎么需要poly ...
- react+webpack+babel环境搭建
[react+webpack+babel环境搭建] 1.react官方文档推荐使用 babel-preset-react.babel-preset-es2015 两个perset. Babel官方文档 ...
- babel使用入门以及使用webpack+babel来"编译"你的JS代码
Babel是一个广泛使用的转码器,可以将ES6代码转为ES5,从而在现有的环境中执行. 这是一个开端,以后遇到问题,也会持续记录. 一.babel配置 官网有更详细的配置教程:https://www. ...
- 详解 Webpack+Babel+React 开发环境的搭建
1.认识Webpack 构建应用前我们先来了解一下Webpack, Webpack是一个模块打包工具,能够把各种文件(例如:ReactJS.Babel.Coffeescript.Less/Sass等) ...
- npm+webpack+babel+react安装
npm+webpack+babel+react安装 1.首先要安装 Node.js, Node.js 自带了软件包管理器 npm 2.在项目文件目录下生成package.json # 进入项目目录$ ...
- webpack+babel+ES6+react环境搭建
webpack+babel+ES6+react环境搭建 步骤: 1 创建项目结构 注意: 先创建一个项目目录 react 这个名字自定义,然后进入到这个目录下面 mkdir app //创建app ...
- 使用webpack+babel构建ES6语法运行环境
1.前言 由于ES6语法在各个浏览器上支持的情况各不相同,有的浏览器对ES6语法支持度较高,而有的浏览器支持较低,所以为了能够兼容大多数浏览器,我们在使用ES6语法时需要使用babel编译器将代码中的 ...
- 重温 Webpack, Babel 和 React
开始之前 在书写文章之前,我假设大家已经有了 JavaScript,Node 包管理工具,Linux 终端操作 这些基本技能,接下来,我将一步一步指引大家从头搭建一个 React 项目 最终实现的效果 ...
- webpack+babel+react+antd技术栈的基础配置
webpack+babel+react+antd技术栈的基础配置 前段时间使用webpack+babel+react+antd做了一套后台管理系统,刚开始被一大堆的新知识压的喘不过气来,压力挺大的.还 ...
- webpack+babel+transform-runtime, IE下提示Promise未定义?
知识要求 babel的基础知识(推荐阮一峰的babel入门教程) 充分理解babel-plugin-transform-runtime与babel-runtime的作用(推荐github项目首页) w ...
随机推荐
- JavaScript的简单入门
一.导读 简介:JavaScript简称js,是基于对象和事件驱动的脚本语言,主要运用于客户端.原名LiveScript,本身和Java没有任何关系,但语法上很类似. 特点:交互性(它可以做的就是信息 ...
- 小白的Python之路 day4 json and pickle数据标准序列化
一.简述 我们在写入文件中的数据,只能是字符串或者二进制,但是要传入文件的数据不一定全是字符串或者二进制,那还要进行繁琐的转换,然后再读取的时候,还要再转回去,显得很麻烦,今天就来学习标准的序列化:j ...
- 搜索引擎之全文搜索算法功能实现(基于Lucene)
之前做去转盘网的时候,我已经公开了非全文搜索的代码,需要的朋友希望能够前去阅读我的博客.本文主要讨论如何进行全文搜索,由于本人花了很长时间设计了新作:观点,观点对全文搜索的要求还是很高的,所以我又花了 ...
- ADO.NET访问数据库
1:ADO.NET数据库的方法和技术 2:ADO.NET的主要组成: 1>DataSet(数据集)-----独立于数据间的数据访问 2>.NETFramework(数据提供程序)----- ...
- 第一本的java 的小总结
1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文 ...
- alpha rarefaction using qiime
shannon菌群多样性指数 H=-∑(Pi)(㏑Pi) Pi=样品中属于第i种的个体的比例,如样品总个体数为N,第i种个体数为ni,则Pi=ni/N: 各种之间,个体分配越均匀,H值就越大.如果每一 ...
- npm 项目更换目录后无法启动
问题描述: 使用 Vue-cli 创建的项目,当文件移动到其他目录后,无法正常启动,报错信息如下: 分析原因: npm 项目,在安装依赖(node_modules)的时候,会记录当前的文件路径.当路径 ...
- Head First设计模式之迭代器模式
一.定义 提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示: 主要解决:不同的方式来遍历整个整合对象. 何时使用:遍历一个聚合对象. 如何解决:把在元素之间游走的责任交给迭代 ...
- chrome调试工具高级不完整使用指南(基础篇)
一.前言 本文记录的是作者在工作上面对chrome的一些使用和情况的分析分享,内容仅代表个人的观点.转发请注明出处(http://www.cnblogs.com/st-leslie/),谢谢合作 二. ...
- Struts2学习笔记(1)---相关配置
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架. 1创建action对象(三种) 1 创建普通的类,不继承任何类, ...