一、下载

新建一个文件夹,在cmd中npm init->npm install->npm install webpack --save-dev

下载完成之后,新建一个webpack.config.js文件,在这个里面写配置

开始准备:http://www.cnblogs.com/GainLoss/p/7198953.html

webpack踩坑:http://www.cnblogs.com/GainLoss/p/7473585.html

vue+webpack:http://www.cnblogs.com/GainLoss/p/6592729.html

       http://www.cnblogs.com/GainLoss/p/6927626.html

二、基础

1.一个入口一个出口

2.多个入口多个出口

3.将第三方文件单独成一个文件夹

4.css文件 js文件 图片 压缩

三、功能

1.基本 一个入口一个出口 将ES6转成ES5

var path=require('path');
var HtmlWebpackPlugin=require('html-webpack-plugin')
module.exports={
entry:{
index:'index.js',
},
output:{
path:path.resolve(__dirname,'dist'),
filename:'[name].[hash].js',
},
resolve:{
extensions:['.js'],//js文件引入的时候可以不用加后缀
},
module:{
rules:[
{
test:/\.js$/,
exclude:/node_modules/,
loader:'babel-loader',
query:{
presets:['es2015']
}
},
]
},
plugins:[
new HtmlWebpackPlugin({
template:'./index.html'
}),
] }

2.将css转成单独的文件

在cmd中下载 npm install style-loader css-loader --save-dev

...module
{
test:/\.css$/,
exclude:/node_modules/,
loader:ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }), },
...plugin中
 new ExtractTextPlugin('style.css'),
 

3.将代码中的图片转成base64

在 cmd中下载 npm install url-loader --save-dev

...module
{
test:/\.(png|jpg|gif)$/,
exclude:/node_modules/,
loader:'url-loader'
}

4.将第三方插件单独成文件

module.exports={
entry:{
index:'index.js',
vendor:['./web/jquery']
},
output:{
path:path.resolve(__dirname,'dist'),
filename:'[name].[hash].js',
},
resolve:{
extensions:['.js'],
},
module:{
rules:[
...
]
},
plugins:[
...new webpack.optimize.CommonsChunkPlugin({
name:['vendor','manifest']
}),
]
}

5.实现多个入口文件

...
function getfile(){//这里面需要获取全部符合的文件
var entry=[];
glob.sync(__dirname+'/web/*.js').forEach(function(file){
var name=file.split('main')[]
if(name){
var filename=file.split('main')[]+"main"+name;
entry.push(filename)
}
})
return entry
}
module.exports={
entry:{
index:getfile(),
vendor:['./web/jquery']
},
...
}

总的代码:

var path=require('path');
var HtmlWebpackPlugin=require('html-webpack-plugin')
var ExtractTextPlugin=require('extract-text-webpack-plugin')
var glob=require('glob')
var webpack=require('webpack')
var CleanWebpackplugin=require('clean-webpack-plugin') function getfile(){
var entry=[];
glob.sync(__dirname+'/web/*.js').forEach(function(file){
var name=file.split('main')[]
if(name){
var filename=file.split('main')[]+"main"+name;
entry.push(filename)
}
})
return entry
} module.exports={
entry:{
index:getfile(),
vendor:['./web/jquery']
},
output:{
path:path.resolve(__dirname,'dist'),
filename:'[name].[hash].js',
},
resolve:{
extensions:['.js'],
},
module:{
rules:[
{
test:/\.js$/,
exclude:/node_modules/,
loader:'babel-loader',
query:{
presets:['es2015']
}
},
{
test:/\.css$/,
exclude:/node_modules/,
loader:ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
},
{
test:/\.(png|jpg|gif)$/,
exclude:/node_modules/,
loader:'url-loader'
}
]
},
plugins:[
new HtmlWebpackPlugin({
template:'./index.html'
}),
new ExtractTextPlugin('style.css'),
new webpack.optimize.CommonsChunkPlugin({
name:['vendor','manifest']
}),
new CleanWebpackplugin(
['dist/index.*.js'],
{
root:__dirname,
verbose:true,
dry:true
}
),
] }

webpack整体了解的更多相关文章

  1. webpack整体配置结构

    摘自<深入浅出webpack>2.8 const path = require('path'); module.exports = { // entry 表示入口,webpack执行的第一 ...

  2. 细说 webpack 之流程篇

    摘自: http://taobaofed.org/blog/2016/09/09/webpack-flow/ 引言 目前,几乎所有业务的开发构建都会用到 webpack .的确,作为模块加载和打包神器 ...

  3. 细说webpack之流程篇

    引言 目前,几乎所有业务的开发构建都会用到 webpack .的确,作为模块加载和打包神器,只需配置几个文件,加载各种 loader 就可以享受无痛流程化开发.但对于 webpack 这样一个复杂度较 ...

  4. webpack编译流程漫谈

    前言 weback在web构建工具的激烈竞争中逐渐脱引而出. 无论是编译速度.报错提示.可扩展性等都给前端开发者耳目一新的感觉.本篇文章是个人对webpack的一点小研究总结. webpack在开发者 ...

  5. [转] webpack之plugin内部运行机制

    简介 webpack作为当前最为流行的模块打包工具,几乎所有的主流前端开发框架(React.Vue等)都会将其作为默认的模块加载和打包工具.通过简单的配置项,使用各种相关的loader和plugin, ...

  6. Webpack Tapable原理详解

    directory - src - sim ---- 简单的模拟实现 - /.js$/ ---- 使用 代码已上传github, 地址 Detailed Webpack 就像一条生产线, 要经过一系列 ...

  7. webpack介绍和使用

    一webpack介绍1由来2介绍3作用4拓展说明5webpack整体认知二webpack安装1安装node2安装cnpm3安装nrm的两种方法4安装webpack三webpack配置0搭建项目结构1初 ...

  8. browserify学习总结

    前言 在未接触browserify,虽然我知道它是一个前端构建工具,但还是有几个疑问: 1. browserify出现的日期? 2. 能构建哪些文件? 3. 附加的browserify代码体积是多大? ...

  9. happypack 原理解析

    说起 happypack 可能很多同学还比较陌生,其实 happypack 是 webpack 的一个插件,目的是通过多进程模型,来加速代码构建,目前我们的线上服务器已经上线这个插件功能,并做了一定适 ...

随机推荐

  1. Django 想要单独执行文件

    Django  单独文件执行  文件  我是在项目根目录文件创建的. 配置文件: #!/usr/bin/env python import os import sys if __name__ == & ...

  2. day16 类之间的关系 特殊成员

    类与类之间的关系1.依赖关系(一个对象当另一个对象的参数)  关系最浅, 特殊成员: 1. 类名() 会自动调用 __init__() class Foo: def__init__(self, nam ...

  3. springMVC从前端接受boolean类型的属性失败的问题

    springMVC从前端接收到的实体又一个boolean类型的属性,发现不管前端怎么操作,后台接收到的值都是false. 问题出现原因: eclipse在给实体属性生成getter和setter的时候 ...

  4. idea进行断点快捷键

    快捷键 功能描述 F8 单步调试,不进入函数内部 F7 单步调试,进入函数内部 Shift+F7 选择要进入的函数 Shift+F8 跳出函数 Alt+F9 运行到断点 Alt+F8 执行表达式查看结 ...

  5. @ControllerAdvice 拦截异常并统一处理

    在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Requ ...

  6. chrome浏览器解决 跨域调试问题

    1.关闭chrome浏览器(全部) 我们可以通过使用chrome命令行启动参数来改变chrome浏览器的设置,具体的启动参数说明参考这篇介绍.https://code.google.com/p/xia ...

  7. 持久层框架---jdbc

    1.JDBC编程步骤: 1.1 加载数据库驱动: 1.2 获取数据库连接: 1.3 通过Connection对象创建Statement对象: 1.4 使用Statement对象执行SQL语句: 1.5 ...

  8. ElasticSearch 服务搭建

    一.搭建环境 操作系统:Win7 ElasticSearch:1.73 Java JDK:1.7 二.搭建操作 1.安装Java JDK,然后配置系统环境变量,新建CLASS_PATH(jre所在目录 ...

  9. Kure讲HTML_div标签和table标签

    为什么要把这两个标签放在一起讲? 个人认为div标签可以算是一个万能标签,它可以通过CSS(层叠样式表)来模仿表格的形式来生成一个表格.那么很多人可能会疑惑那在开发的时候,到底是用div+css的形式 ...

  10. Java实现中文词频统计

    昨日有个中文词频统计的需求, 百度一番后, 发现一大堆标题党文章, 讲的与内容严重不符, 这里就简单记录下自己实现的流程吧! 与英文单词的词频统计不同, 中文的难点在于如何分词, 不过好在有许多优秀的 ...