webpack

webpack

是一个模块打包器,能够把所有的文件都当做是一个模块

它把所有的文件资源(js,json,css,sass,图片)都看作为模块

将这些文件资源解析处理以后,生成对应的打包文件

使用webpack构建一些应用也是非常方便,比如基于

node webpack vue-cli构建vue程序(脚手架)

webpack是一个基于node.js运行环境,用于打包本地文件

之间相互依赖并最终输出成单个文件的工具,就像npm工具可以下载安装包一样

webpack能够帮助我们解决

1.打包js文件

文件结构
	dist目录
  src目录
  	app.js
		1.js
  index.html
  • 在项目的根目录下面初始化

​ npm init -y

  • 装包 webpack

​ npm install webpack@3 -g

  • 打包

​ webpack 源文件路径 打包到新文件路径

​ webpack ./src/app.js ./dist/bundle.js

  • 在index.html中 引入打包后的文件路径

配置 行命令繁琐

在新项目根目录下新建一个文件:webpack.config.js

##2.打包json文件

直接暴露,然后引入即可,js插件解决

##3.打包css文件

  • 安装:npm i style-loader css-loader -D

  • 创建style.css 并书写相关样式

  • app.js中引入:require(’./style.css’)或者 import css from ‘./style.css’//引入时加后缀名

  • 配置 在webpack .config.js 加入

    •  module:{
              rules:[{
                  test:/\.css$/,//解析css
                  use:['style-loader','css-loader']//从右向左解析
              }]
          }
      
  • 在cmd 运行webpack进行打包

##4.打包css中的图片

  • 安装:npm i url-loader file-loader -D

  • 配置webpack.config.js (放在reules配置css下面)

     use:[{
                    loader:'url-loader',
                    option:{
                        limit:8192,
                        
                    }
                }]
    
  • 运行cmd webpack打包

5.打包处理页面里面的img标签

  • 安装 npm install html-withimg-loader --save

  • 运行 webpack.config.js中配置modules.rules(放在图片下面)

    {
      test:/\(htm|html$/i,
      loader:'html-withimg-loader'
    }
    
  • 使用插件html-webpack-plugin

    需要下载webpack到本地

    npm install --save-dev webpack@3

  • 下载包

    npm i html-webpack-plugin -S

  • 插件放在module 后面

    配置
        filename
    	就是html文件的文件名,默认是index.html
    	template
    	指定你生成的文件所依赖哪一个html文件模板,模板类型可以是html、jade、ejs等
    	。但是要注意的是,如果想使用自定义的模板文件的时候,你需要安装对应的loader哦。
    	//引入 
    	var htmlWebpackPlugin = require('html-webpack-plugin')
    	
    	//插件 放在module 后面
    	plugins:[
            new htmlWebpackPlugin({
                //生成的html文件 不用指定输出目录 因为出门文件已经设置
                filename:"a.html",
                //已经有的html 模板 
                template:"./index.html" //打包页面
            })
        ]
    

    压缩js

    为什么要压缩?
    压缩文件可以减少文件大小,可以去除不必要的空格和换行,对于图片文件
    可以把质量调低,文件大小 小了,网络字节量也就小了,用户下载速度就
    会变快
    

    如果是新建的文件目录:那么需要初始化:

    npm init -y

  • 安装webpack@3.1.0

    • npm i --save-dev webpack@3.1.0
  • webpack.config.js文件中新添加一个插件
    	  var  webpack = require("webpack");
    	//plugins: [new webpack.optimize.UglifyJsPlugin() // 压缩js文件]
        plugins:[
            new htmlWebpackPlugin({
                //生成的html文件 不用指定输出目录 因为出门文件已经设置
                filename:"a.html",
                //已经有的html 
                template:"./index.html"
            }),
            new webpack.optimize.UglifyJsPlugin(), //压缩js文件
            //单独打包 生成的路径的
           // new ExtractTextPlugin("style.css"),
           //压缩
           // new OptimizeCssplugin()
        ]
    
  • 运行cmd 进行压缩

压缩css文件

  • 安装包:npm i --save-dev extract-text–webpack-plugin@3.0.2

  • 安装压缩css文件的插件

    • npm install --save-dev optimize-css-assets-webpack-plugin@3.2.0
  • 在webpack.config.js中配置

压缩图片文件

  • 新建文件目录

    dist

    src

    加载图片

    1.jpg

    app.js:引入图片

    webpack.config.js配置文件

  • 初始化:

    • npm init -y
  • 安装包

    • npm i --save-dev url-loader@1.1.2 file-loader@2.0.0 image-webpack-loader@4.6.0
  • 安装webpack到本地

    • npm i --save-dev webpack@3
  • 在index.js导入这章图片

    • import “./1.png”
  • 运行cmd webpack进行打包压缩

雪碧图

  • 新建文件目录

​ dist

​ src

​ icons 图标

​ app.js

​ index.html

  • 初始化包

    • npm init -y
  • 安装

    • npm install webpack-spritesmith@1.0.0
  • 安装webpack

    • npm install webpack@3 --save-dev
  • 安装 html-webpack-plugin插件

    • npm i --save-dev html-webpack-plugin@3.2.0
  • 安装导入

    • const WebpackPlugin = require(‘html-webpack-plugin’)
    • const Spritesmith
  • target :{
      //生成雪碧图(大图)文件存放路径
      image:path.resolve(__dirname,'dist/sprite/sprite.png'),
        css:path.resolve(__diname,'dist/sprite/sprite.css')
      
    },
      //样式文件中 雪碧图的写法 
     apiOptions:{
       al
     }
    
  • 在根目录index.html中

    <link rel="stylesheet" href="./sprite.css">
      </head>
    <body>
    	 <div id="one"></div>
        <div id="two"></div>
        <div id="three"></div>
      
    </body>
    
    
  • 在app.js中

    document.getElementById("one").classList.add("icon-4");
    document.getElementById("two").classList.add("icon-2");
    document.getElementById("three").classList.add("icon-right");
    
  • 在webpack.config.js中配置

    在plugins下添加
       new WebpackHtmlPlugin({
                template:"./src/index.html"
            })
    
    
  • 运行cmd webpack 将在 dist目录下生成 一个文件夹和一个html,里面有打包的精灵图,打开html即可在网页中看到精灵图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值