• Webpack的使用


    一、了解Webpack

      1、什么是webpack
        Webpack是一个模块打包器(bundler)
        在Webpack看来,前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,生成对应的模态资源

      2、理解Loader
        Webpack本身只能加载JS/JSON模块,如果要加载其他类型的文件(模块),就需要使用对应的loader进行转换/加载
        Loader本身也是运行在node.js环境中的JavaScript模块,它本身是一个函数,接受源文件作为参数,返回转化的结果
        loader一般以xxx-loader的方式命名,xxx代表了这个loader要做的转换功能,比如json-loader

      3、配置文件
        webpack.config.js:是一个node模块,返回一个json格式的配置信息对象

      4、插件
        插件可以完成一些loader不能完成的功能。插件的使用一般是在webpack的配置信息pluguins选项中指定

      5、Webpack中文文档:https://www.webpackjs.com/concepts/

    二、Webpack的简单使用

      1、初始化项目
      新建空项目,创建package.json文件,局部安装webpack(可选,安装过node会自动全局安装webpack)
      package.json文件内容:
        {
          "name": "webpack_test",
          "version": "1.0.0"
        }

      2、创建入口entry.js
        入口函数中整合所有的资源

      3、使用webpack配置文件

        创建webpack.config.js

    const path = require('path'); //path内置的模块,用来设置路径。
    
    module.exports = {
        entry: './src/js/entry.js', // 入口文件
        output: { // 输出配置
            filename: 'bundle.js', // 输出文件名
            path: path.resolve(__dirname, 'dist') //输出文件路径配置
        }
    };

        在package.json文件中添加

    "scripts": {
        "build": "webpack"
    }

      4、启动打包
        webpack

    三、打包css和图片文件

      1、安装对应的loader

    npm install css-loader style-loader --save-dev
    npm install file-loader url-loader --save-dev
    注:url-loader是对象file-loader的上层封装,使用时需配合file-loader使用。

      2、在webpack.config.js中配置loader

    module: {
        rules: [
            {
                test: /.css$/,
                use: [
                    'style-loader',
                    'css-loader'
                ]
            },
            {
          test: /.(png|jpg|gif)$/,
          use: [
            {
              loader: 'url-loader',
              options: {
                limit: 8192 
              }
            }
          ]
        }
      ]
    }            

      3、入口函数entry.js中导入样式

      4、问题

        大图无法打包到entry.js文件中,会在资源目录下生成。ndex.html不在生成资源目录下时,页面加载图片会在所在目录位置查找,导致页面加载图片时候大图路径无法找到
        解决办法:
          ①使用publicPath : 'dist/js/' //设置为index.html提供资源的路径,设置完后找所有的资源都会去当前目录下找,这种方法会导致无法使用热部署。
          ②将index.html放在dist/js/也可以解决。

    四、测试环境下自动编译打包

      利用webpack开发服务器工具: webpack-dev-server
      安装:npm install --save-dev webpack-dev-server
      在webpack.config.js中配置:

    devServer: {
      contentBase: 'dist/'
    }

      启动命令:webpack-dev-server

    五、使用webpack插件

      1、常用的插件

        使用html-webpack-plugin根据模板html生成引入script的页面
        使用clean-webpack-plugin清除dist文件夹
        使用uglifyjs-webpack-plugin压缩打包的js文件

      2、使用
        npm install --save-dev html-webpack-plugin clean-webpack-plugin

      3、webpack配置

    const HtmlWebpackPlugin = require('html-webpack-plugin'); //自动生成html文件的插件
    const {CleanWebpackPlugin} = require('clean-webpack-plugin'); //清除之前打包的文件 
    plugins: [
      new HtmlWebpackPlugin({template: './index.html'}),
      new CleanWebpackPlugin(),
    ]

      4、启动
      创建模板页面,使用webpack命令启动生成资源

  • 相关阅读:
    随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里
    phpmyadmin查看创建表的SQL语句
    thinkphp 3.2响应头 x-powered-by 修改
    Centos 7.0查看硬盘使用情况 命令
    centos 7.0安装花生壳
    centos 7.0 菜鸟接触命令 记录
    centos 7.0 ssh 登陆
    Sphinx 2.2.6 window下安装全过程 未完 持续标记~~~~
    c#多线程编程实战(原书第二版)文摘
    分布式锁的几种实现方式(转)
  • 原文地址:https://www.cnblogs.com/hucheng1997/p/11209206.html
Copyright © 2020-2023  润新知