一、下载

新建一个文件夹,在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

  1. var path=require('path');
  2. var HtmlWebpackPlugin=require('html-webpack-plugin')
  3. module.exports={
  4. entry:{
  5. index:'index.js',
  6. },
  7. output:{
  8. path:path.resolve(__dirname,'dist'),
  9. filename:'[name].[hash].js',
  10. },
  11. resolve:{
  12. extensions:['.js'],//js文件引入的时候可以不用加后缀
  13. },
  14. module:{
  15. rules:[
  16. {
  17. test:/\.js$/,
  18. exclude:/node_modules/,
  19. loader:'babel-loader',
  20. query:{
  21. presets:['es2015']
  22. }
  23. },
  24. ]
  25. },
  26. plugins:[
  27. new HtmlWebpackPlugin({
  28. template:'./index.html'
  29. }),
  30. ]
  31.  
  32. }

2.将css转成单独的文件

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

  1. ...module
    {
  2. test:/\.css$/,
  3. exclude:/node_modules/,
  4. loader:ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
  5.  
  6. },
    ...plugin
 new ExtractTextPlugin('style.css'),
  1.  

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

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

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

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

  1. module.exports={
  2. entry:{
  3. index:'index.js',
  4. vendor:['./web/jquery']
  5. },
  6. output:{
  7. path:path.resolve(__dirname,'dist'),
  8. filename:'[name].[hash].js',
  9. },
  10. resolve:{
  11. extensions:['.js'],
  12. },
  13. module:{
  14. rules:[
  15. ...
  16. ]
  17. },
  18. plugins:[
  19. ...new webpack.optimize.CommonsChunkPlugin({
  20. name:['vendor','manifest']
  21. }),
  22. ]
  23. }

5.实现多个入口文件

  1. ...
  2. function getfile(){//这里面需要获取全部符合的文件
  3. var entry=[];
  4. glob.sync(__dirname+'/web/*.js').forEach(function(file){
  5. var name=file.split('main')[]
  6. if(name){
  7. var filename=file.split('main')[]+"main"+name;
  8. entry.push(filename)
  9. }
  10. })
  11. return entry
  12. }
  13. module.exports={
  14. entry:{
  15. index:getfile(),
  16. vendor:['./web/jquery']
  17. },
  18. ...
  19. }

总的代码:

  1. var path=require('path');
  2. var HtmlWebpackPlugin=require('html-webpack-plugin')
  3. var ExtractTextPlugin=require('extract-text-webpack-plugin')
  4. var glob=require('glob')
  5. var webpack=require('webpack')
  6. var CleanWebpackplugin=require('clean-webpack-plugin')
  7.  
  8. function getfile(){
  9. var entry=[];
  10. glob.sync(__dirname+'/web/*.js').forEach(function(file){
  11. var name=file.split('main')[]
  12. if(name){
  13. var filename=file.split('main')[]+"main"+name;
  14. entry.push(filename)
  15. }
  16. })
  17. return entry
  18. }
  19.  
  20. module.exports={
  21. entry:{
  22. index:getfile(),
  23. vendor:['./web/jquery']
  24. },
  25. output:{
  26. path:path.resolve(__dirname,'dist'),
  27. filename:'[name].[hash].js',
  28. },
  29. resolve:{
  30. extensions:['.js'],
  31. },
  32. module:{
  33. rules:[
  34. {
  35. test:/\.js$/,
  36. exclude:/node_modules/,
  37. loader:'babel-loader',
  38. query:{
  39. presets:['es2015']
  40. }
  41. },
  42. {
  43. test:/\.css$/,
  44. exclude:/node_modules/,
  45. loader:ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
  46. },
  47. {
  48. test:/\.(png|jpg|gif)$/,
  49. exclude:/node_modules/,
  50. loader:'url-loader'
  51. }
  52. ]
  53. },
  54. plugins:[
  55. new HtmlWebpackPlugin({
  56. template:'./index.html'
  57. }),
  58. new ExtractTextPlugin('style.css'),
  59. new webpack.optimize.CommonsChunkPlugin({
  60. name:['vendor','manifest']
  61. }),
  62. new CleanWebpackplugin(
  63. ['dist/index.*.js'],
  64. {
  65. root:__dirname,
  66. verbose:true,
  67. dry:true
  68. }
  69. ),
  70. ]
  71.  
  72. }

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. Gym - 101572G Galactic Collegiate Programming Contest 小根堆(set)

    题目传送门 题目大意: n个人,m次提交,每次提交都代表某支队伍做出一题,并且给出罚时,让你输出每次提交后,编号为1的队伍的排名. 思路: 首先处理ac和罚时,由于罚时最大1000,最多有1e5次,要 ...

  2. jQuery 全屏滚动插件 fullPage.js 参数说明

    fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站,主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 ...

  3. C#学习 - 关于Interlocked.CompareExchange()的用法

    https://blog.csdn.net/jianhui_wang/article/details/80485517 Interlocked.CompareExchange有一组函数   名称 说明 ...

  4. JS Date 时间格式化

    Date2Str(x, y) { , d: x.getDate(), h: x.getHours(), m: x.getMinutes(), s: x.getSeconds() }; y = y.re ...

  5. pip install keras==1.2.1

    [该方法仅适用于压缩包中含有setup.py的情况] 先从GitHub上找到想要下载的历史版本,右键复制链接地址. 然后执行命令: pip install https://github.com/ker ...

  6. 查看Python支持的.whl文件版本

    AMD64 import pip._internal print(pip._internal.pep425tags.get_supported()) WIN32 import pip print(pi ...

  7. 百度Echart 地图

    使用百度地图做一个全国地图数据分析的功能,如下图 代码 <%@ Page Language="C#" AutoEventWireup="true" Cod ...

  8. LISP语言学习资源

    LISP的介绍:Paul Graham 的主页 http://paulgraham.com/index.html Lisp之根源 - 保罗·格雷厄姆 http://daiyuwen.freeshell ...

  9. Not so Mobile UVA - 839

    题目链接:https://vjudge.net/problem/UVA-839 题目大意:输入一个树状天平,根据力矩相等原则,判断是否平衡.  如上图所示,所谓力矩相等,就是Wl*Dl=Wr*Dr.  ...

  10. [转]href="#"与javascript:void(0)的区别

    本文转自:http://www.cnblogs.com/suizhikuo/p/3928411.html 如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href=&qu ...