IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> webpack简单实用说明及应用 -> 正文阅读

[JavaScript知识库]webpack简单实用说明及应用

首先小huihui推荐使用 yarn 包管理器,与 npm 类似,可用于下载包,优点就是更快,安全可靠。

详情见官网:?Yarn 中文文档

下载见:安装 | Yarn 中文文档

==不要安到带中文的路径下, 建议在C盘/==


一、webpack基本概念

就是 node 的一个第三方模块包,用于打包代码。详见官网:webpack

  1. webpack能做什么?
    把很多个文件打包整合在一起,缩小项目的体积,提高加载速度。
  2. 功能

  • ?支持所有类型文件的打包
  • 支持less/sass=>css
  • 支持ES6/7/8=>ES5
  • html/css/js => 压缩合并

二、准备工作

1. 初始化包环境,得到package.json文件

yarn init

2. 下载webpack等模块

yarn add webpack webpack-cli -D

3. 在package.json自定义命令,为打包做准备

三、webpack配置?

?默认配置

  • 默认入口
    ./src/index.js
  • 默认出口
  • ./dist/main.js
  • webpack配置文件
    1.新建src并列处,新增文件webpack.config.js
    2.填入配置项
    const path = require("path")
    
    module.exports = {
        entry: "./src/main.js", // 入口
        output: { 
            path: path.join(__dirname, "dist"), // 出口路径
            filename: "bundle.js" // 出口文件名
        }
    }

    3.修改package.json自定义打包命令

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

    4.终端打包并实验效果

    yarn build

四、打包流程图

五、打包所需插件文档及简单使用

插件使用原因:webpack默认只认识 js 文件和 json文件

  1. 自动生成html文件:HtmlWebpackPlugin | webpack 中文网
    -下载:
    yarn add html-webpack-plugin -D
    -对webpack.config.js配置:
    // 引入自动生成 html 的插件
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const path = require('path');
    
    module.exports = {
      entry: 'index.js',
      output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'index_bundle.js',
      },
      plugins: [new HtmlWebpackPlugin()],
    };

    -重新打包并查看是否在dist文件下多出html文件

  2. 打包css文件:style-loader | webpack 中文文档
    ? ? ? ? ? ? ? ? ? ? ? ??css-loader | webpack 中文文档
    -安装依赖包:
    yarn add style-loader css-loader -D

    -对webpack.config.js配置:

    module.exports = {
      module: {
        rules: [
          {
            test: /\.css$/i,
            use: ["style-loader", "css-loader"],
          },
        ],
      },
    };

    -引入入口文件 (因为这里是入口需要产生关系, 才会被webpack找到打包起来)

  3. import "./css/index.css" //css文件所在路径

    -运行打包后的html文件查看效果

  4. 打包less文件:less-loader | webpack 中文文档
    -安装依赖包
    yarn add less less-loader -D

    -webpack.config.js配置

    module.exports = {
      module: {
        rules: [
          {
            test: /\.less$/i,
            loader: [
              // 使用less-loader, 让webpack处理less文件, 内置还会用less翻译less代码成css内容     
              'style-loader',
              'css-loader',
              'less-loader',
            ],
          },
        ],
      },
    };

    -引入到入口文件中

    import "./less/index.less"  //less文件所在路径

    -打包并运行查看结果

  5. 处理图片及字体文件:资源模块 | webpack 中文文档
    注意:如果使用的是webpack5版本的, 直接配置在webpack.config.js - 的 rules里即可
    详见查看:资源模块 | webpack 中文文档

    如果是webpack4及以前查看配置:?https://webpack.docschina.org/loaders/url-loader/
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://webpack.docschina.org/loaders/file-loader/
    ?与之前步骤相同,查看文档即可。

    总结: url-loader和file-loader 可以打包静态资源文件
  6. 处理高版本js语法:Babel 中文网 · Babel - 下一代 JavaScript 语法的编译器
    问题:webpack 默认仅内置了 模块化的 兼容性处理 import export
    解决:让webpack配合babel-loader 对js语法做处理?babel-loader | webpack 中文文档
    -安装包
    yarn add -D babel-loader @babel/core @babel/preset-env

    -配置

    module: {
      rules: [
        {
            test: /\.js$/,
            exclude: /(node_modules|bower_components)/,
            use: {
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/preset-env'] // 预设:转码规则(用bable开发环境本来预设的)
                }
            }
        }
      ]
    }

    -在入口函数中使用箭头函数等高版本js代码

    // 高级语法
    const fn = () => {
      console.log("Hello World!");
    }
    console.log(fn) // 这里必须打印不能调用/不使用, 不然webpack会精简成一句打印不要函数了/不会编译未使用的代码
    // 没有babel集成时, 原样直接打包进lib/bundle.js
    // 有babel集成时, 会翻译成普通函数打包进lib/bundle.js

    -打包后观察js项目,会被转换成普通函数使用,就是进行了babel降级翻译的功能。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:18:34  更:2021-10-18 17:20:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:03:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码