webpack看这一篇就够了

2023-05-16

文章目录

    • 今日学习目标
    • 1. webpack基本概念
      • ==webpack能做什么==
    • 2. webpack的基本使用
      • 2.0 创建项目
      • 2.1 解决多次引入资源文件
      • 2.2 webpack使用
      • 2.3_webpack 更新打包
    • 3. webpack的配置
      • 3.0_webpack-入口和出口
      • 3.1_打包流程图
      • 3.2_插件-自动生成html文件
      • 3.3_mode模式
      • 3.3_webpack开发服务器-为何学?
      • 3.4_webpack-dev-server
      • 3.5_webpack-dev-server配置
      • 3.6_加载器 - 处理css文件问题
      • 3.5_加载器 - 处理css文件
      • 3.6_加载less问题
      • 3.7_加载器 - 处理less文件
      • 3.8_加载器 - 图片问题
      • 3.9 _加载器 - 处理图片
      • 3.10_webpack加载文件优缺点
      • 3.11_加载器 - 处理字体文件
      • 3.12_加载器 - 处理高版本js语法
    • 总结

今日学习目标

  1. 能够理解webpack基本概念和作用

  2. 能够掌握webpack使用步骤

  3. 能够使用webpack相关配置

  4. 能够使用webpack开发服务器

  5. 能够查阅使用webpack中文文档

1. webpack基本概念

目标: webpack本身是, node的一个第三方模块包, 用于打包代码

webpack官网

  • 现代 javascript 应用程序的 静态模块打包器 (module bundler)

  • 为要学的 vue-cli 开发环境做铺垫

webpack能做什么

把很多文件打包整合到一起, 缩小项目体积, 提高加载速度

  • 打包前的项目

在这里插入图片描述

  • 打包后的项目

在这里插入图片描述

在这里插入图片描述

其中功能:

  • less/sass -> css

    在这里插入图片描述

  • ES6/7/8 -> ES5 处理js兼容

  • 支持js模块化

  • 处理css兼容性

  • html/css/js -> 压缩合并

2. webpack的基本使用

2.0 创建项目

  • 新建项目目录,目录结构和之前的规范不同

  • 根目录创建public

    • 创建index.html

      <body>
        <div>轮播图</div>
        <div>tabs标签页</div>
      </body>
      
      <script src="../src/index.js"></script>
      
  • 创建src存放代码资源文件

    • 创建index.js

      console.log('实现轮播图的业务逻辑')
      console.log('实现tabs标签页的逻辑')
      
  • 将逻辑进行模块化

    • 创建banner.js

      console.log('实现轮播图的业务逻辑')
      
    • 创建tabs.js

      console.log('实现tabs标签页的逻辑')
      
    • index.html中引入

      <body>
        <div>轮播图</div>
        <div>tabs标签页</div>
      </body>
      <script src="../src/banner.js"></script>
      <script src="../src/tabs.js"></script>
      

2.1 解决多次引入资源文件

  • 在index.js中引入banner.js和tabs.js

    import './banner.js'
    import './tabs.js'
    
  • index.html中引入index.js

    <body>
      <div>轮播图</div>
      <div>tabs标签页</div>
    </body>
    <script src="../src/index.js"></script>
    
  • 报错

    在这里插入图片描述

2.2 webpack使用

  1. 初始化包环境

    yarn init
    
  2. 安装依赖包

    yarn add webpack webpack-cli -D
    
  3. 配置scripts(自定义命令)

    scripts: {
    	"build": "webpack"
    }
    
  4. 运行打包命令

    yarn build
    #或者 npm run build
    

总结: src并列处, 生成默认dist目录和打包后默认main.js文件,默认会打包src下的index.js

2.3_webpack 更新打包

目标: 以后代码变更, 如何重新打包呢

  1. 重新打包

    yarn build
    

总结1: src下开发环境, dist是打包后, 分别独立

总结2: 打包后格式压缩, 变量压缩等

3. webpack的配置

3.0_webpack-入口和出口

目标: 告诉webpack从哪开始打包, 打包后输出到哪里

默认入口: ./src/index.js

默认出口: ./dist/main.js

webpack配置 - webpack.config.js(默认)

  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" // 出口文件名
    }
}
  1. 修改package.json, 自定义打包命令 - 让webpack使用配置文件
"scripts": {
    "build": "webpack"
},
  1. 打包观察效果

3.1_打包流程图

在这里插入图片描述

重点: 所有要被打包的资源都要跟入口产生直接/间接的引用关系

3.2_插件-自动生成html文件

目标: html-webpack-plugin插件, 让webpack打包后生成html文件并自动引入打包后的js

html-webpack-plugin插件地址

  1. 下载插件

    yarn add html-webpack-plugin  -D
    
  2. webpack.config.js配置

    // 引入自动生成 html 的插件
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    
    module.exports = {
        // ...省略其他代码
        plugins: [
            new HtmlWebpackPlugin()
        ]
    }
    
  3. 重新打包后观察dist下是否多出html并运行看效果

    打包后的index.html自动引入打包后的js文件

  4. 自定义打包的html模版,和输出文件名字

    plugins: [
      new HtmlWebpackPlugin({
        template: './public/index.html',
        filename: 'index.html'
      })
    ]
    

3.3_mode模式

  • mode模式分为开发阶段和发布阶段

  • development 开发阶段,简易打包,打包速度快

  • production 发布阶段,打包精细,打包速度慢(但是没关系不会经常production)

    mode: 'development || production'
    

3.3_webpack开发服务器-为何学?

文档地址: https://webpack.docschina.org/configuration/dev-server/

抛出问题: 每次修改代码, 都需要重新 yarn build 打包, 才能看到最新的效果, 实际工作中, 打包 yarn build 非常费时 (30s - 60s) 之间

为什么费时?

  1. 构建依赖
  2. 磁盘读取对应的文件到内存, 才能加载
  3. 将处理完的内容, 输出到磁盘指定目录

解决问题: 起一个开发服务器, 在电脑内存中打包, 缓存一些已经打包过的内容, 只重新打包修改的文件, 最终运行加载在内存中给浏览器使用

3.4_webpack-dev-server

目标: 启动本地服务, 可实时更新修改的代码, 打包变化代码到内存中, 然后直接提供端口和网页访问

  1. 下载包

    yarn add webpack-dev-server -D
    
  2. 配置自定义命令

    scripts: {
    	"build": "webpack",
    	"serve": "webpack serve"
    }
    
  3. 运行命令-启动webpack开发服务器

    yarn serve
    #或者 npm run serve
    

总结: 以后改了src下的资源代码, 就会直接更新到内存打包, 然后反馈到浏览器上了

3.5_webpack-dev-server配置

  1. Package.json

    "scripts": {
      "build": "webpack",
      "serve": "webpack serve --port 8083 --open"
    },
    
  2. 在webpack.config.js中添加服务器配置

    更多配置参考这里: https://webpack.docschina.org/configuration/dev-server/#devserverafter

    module.exports = {
        // ...其他配置
        devServer: {
          port: 3000, // 端口号
          open: true
        }
    }
    

3.6_加载器 - 处理css文件问题

目标: 自己准备css文件, 引入到webpack入口, 测试webpack是否能打包css文件

1.新建 - src/styles/index.css

2.编写样式

.banner {
  width: 100px;
  height: 100px;
  background-color: hotpink;
}

3.(重要) 一定要引入到入口才会被webpack打包

4.执行打包命令观察效果

在这里插入图片描述

总结: 保存原因, 因为webpack默认只能处理js类型文件

3.5_加载器 - 处理css文件

目标: loaders加载器, 可让webpack处理其他类型的文件, 打包到js中

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

style-loader文档

css-loader文档

  1. 安装依赖

    yarn add style-loader css-loader -D
    
  2. webpack.config.js 配置

    const HtmlWebpackPlugin = require('html-webpack-plugin')
    
    module.exports = {
        // ...其他代码
        module: { 
            rules: [ // loader的规则
              {
                test: /\.css$/, // 匹配所有的css文件
                // use数组里从右向左运行
                // 先用 css-loader 让webpack能够识别 css 文件的内容并打包
                // 再用 style-loader 将样式, 把css插入到dom中
                use: [ "style-loader", "css-loader"]
              }
            ]
        }
    }
    

总结: 万物皆模块, 引到入口, 才会被webpack打包, css打包进js中, 然后被嵌入在style标签插入dom上

3.6_加载less问题

  1. 新建less样式

    body {
      .tabs {
        width: 400px;
        height: 40px;
        background-color: pink;
      }
    }
    
    
  2. 引入less样式

    import './banner.js'
    import './tabs.js'
    import './styles/index.css'
    console.log(132)
    
  3. 报错

3.7_加载器 - 处理less文件

目标: less-loader让webpack处理less文件, less模块翻译less代码

less-loader文档

  1. 安装less-loader

    yarn add less less-loader -D
    
  2. webpack.config.js 配置

    module: {
      rules: [ // loader的规则
        // ...省略其他
        {
        	test: /\.less$/,
        	// 使用less-loader, 让webpack处理less文件, 内置还会用less翻译less代码成css内容
            use: [ "style-loader", "css-loader", 'less-loader']
        }
      ]
    }
    

3.8_加载器 - 图片问题

将资源文件复制到项目中

  1. 定义盒子结构

    <div class="box"></div>
    <div class="box2"></div>
    
  2. 通过样式设置背景图

    .box {
      width: 100px;
      height: 100px;
      background-image: url(../assets/logo_small.png);
    }
    
    .box2 {
      width: 100px;
      height: 100px;
      background-image: url(../assets/1.gif);
    }
    

3.9 _加载器 - 处理图片

目标: 用asset module方式(webpack5版本新增)

在指南里面

asset module文档

如果使用的是webpack5版本的, 直接配置在webpack.config.js - 的 rules里即可

{
    test: /\.(png|jpg|gif|jpeg)$/i,
    type: 'asset'
}

打包看效果 yarn build

如果你用的是webpack4及以前的, 请使用者里的配置作为了解

url-loader文档

file-loader文档

  1. 下载依赖包

    yarn add url-loader file-loader -D
    
  2. webpack.config.js 配置

    {
      test: /\.(png|jpg|gif|jpeg)$/i,
      use: [
        {
          loader: 'url-loader', // 匹配文件, 尝试转base64字符串打包到js中
          // 配置limit, 超过8k, 不转, file-loader复制, 随机名, 输出文件
          options: {
            limit: 8 * 1024,
          },
        },
      ],
    }
    
  3. src/assets/准备2个图文件

  4. 在css/less/index.less - 把小图片用做背景图

    body{
        background: url(../assets/logo_small.png) no-repeat center;
    }
    
  5. 在src/main.js - 把大图插入到创建的img标签上, 添加body上显示

    // 引入图片-使用
    import imgUrl from './assets/1.gif'
    const theImg = document.createElement("img")
    theImg.src = imgUrl
    document.body.appendChild(theImg)
    
  6. 打包运行dist/index.html观察2个图片区别

总结: url-loader 把文件转base64 打包进js中, 会有30%的增大, file-loader 把文件直接复制输出

3.10_webpack加载文件优缺点

  • 以8kb进行区分,小于8kb图片转成 base64 字符串
    • 好处就是浏览器不用发请求了,直接可以读取
    • 坏处就是如果图片太大,再转base64就会让图片的体积增大 30% 左右

3.11_加载器 - 处理字体文件

目标: 用asset module技术, asset/resource直接输出到dist目录下

  1. src/assets/ - 放入字体库fonts文件夹

  2. 在main.js引入iconfont.css

    // 引入字体图标文件
    import './assets/fonts/iconfont.css'
    
  3. 在public/index.html使用字体图标样式

    <i class="iconfont icon-weixin"></i>
    

webpack5使用这个配置,也可以不配置

{ // webpack5默认内部不认识这些文件, 所以当做静态资源直接输出即可
    test: /\.(eot|svg|ttf|woff|woff2)$/,
    type: 'asset/resource',
    generator: {
    	filename: 'font-[name].[hash:6][ext]'
    }
}

webpack4及以前使用下面的配置

  1. webpack.config.js - 准备配置

     { // 处理字体图标的解析
         test: /\.(eot|svg|ttf|woff|woff2)$/,
             use: [
                 {
                     loader: 'url-loader',
                     options: {
                         limit: 2 * 1024,
                         // 配置输出的文件名
                         name: '[name].[ext]',
                         // 配置输出的文件目录
                         outputPath: "fonts/"
                     }
                 }
             ]
     }
    
  2. 执行打包命令-观察打包后网页效果

总结: url-loader和file-loader 可以打包静态资源文件

3.12_加载器 - 处理高版本js语法

  1. 在main.js中使用箭头函数(高版本js)

    class App {
      static a = 123
    }
    
    console.log(App.a)
    
  2. 打包后观察lib/bundle.js

目标: 让webpack对高版本 的js代码, 降级处理后打包

写代码演示: 高版本的js代码(箭头函数、类), 打包后, 直接原封不动打入了js文件中, 遇到一些低版本的浏览器就会报错

原因: webpack 默认仅内置了 模块化的 兼容性处理 import export

babel 的介绍 => 用于处理高版本 js语法 的兼容性 babel官网

解决: 让webpack配合babel-loader 对js语法做处理

@babel/core:

@babel/core是babel的核心库,所有的核心Api都在这个库里,这些Api供babel-loader调用

@babel/preset-env:

这是一个预设的插件集合,包含了一组相关的插件,Bable中是通过各种插件来指导如何进行代码转换。该插件包含所有es6转化为es5的翻译规则

babel-loader文档

  1. 安装包

    yarn add -D babel-loader @babel/core @babel/preset-env
    
  2. 配置规则

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

总结: babel-loader 可以让webpack 对高版本js语法做降级处理后打包

总结

  • 什么是webpack, 它有什么作用
  • 知道yarn的使用过程, 自定义命令, 下载删除包
  • 有了webpack让模块化开发前端项目成为了可能, 底层需要node支持
  • 对webpack各种配置项了解
    • 入口/出口
    • 插件
    • 加载器
    • mode模式
    • devServer
  • webpack开发服务器的使用和运作过程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webpack看这一篇就够了 的相关文章

  • Dockerfile

    Dockerfile Dockerfile基本结构指令FROMMAINTAINERRUNCMDEXPOSEENVADDCOPYENTRYPOINTVOLUMEUSERWORKDIRONBUILD 创建镜像 Dockerfile 基本结构 D
  • 使用git时本地代码被覆盖怎么办

    1 遇事不要慌 xff0c 看本地历史记录 右键要想要恢复的代码或文件夹 61 右键 61 Local History 61 gt Show History 2 我一下就找到了本地历史记录 看右边有了不同时间的代码 xff0c 去点一下试试
  • Ubuntu截图工具flameshot的安装与快捷键设置

    https blog csdn net sexyluna article details 105884224
  • moveit配置过后gazebo加载不出来机械臂模型的问题

    我使用moveit setup assistant对dubot magician机械臂的urdf进行配置 xff0c 配置完成后发现运行gazebo launch可以打开gazebo xff0c 但是却什么也没有 xff0c 机械臂模型加载
  • 上传本地项目代码到GitHub的方法

    预备知识 xff1a 有一个GitHub账号 xff0c 然后知道怎么进GitHub网页 之前往GitHub上传代码都是现场百度找指令操作的 xff0c 从来不记 xff0c 这次干脆做个记录当个笔记吧 Git是一个版本控制软件 xff0c
  • 单片机之蜂鸣器

    蜂鸣器简介 无源蜂鸣器 xff1a 有绿色电路板的一种 有源蜂鸣器 xff1a 没有电路板用黑胶封闭的一种 其实蜂鸣器的种类有很多 例如 xff1a 电磁式蜂鸣器 xff1a 由振荡器 电磁线圈 磁铁 振动膜片及外壳组成 同时电磁式蜂鸣器也
  • Centos Stream 9 安装 Docker 23.0.2 社区版 官方安装教程

    目录 一 内核的版本必须大于3 10使用下面的命令来检查是否满足docker的要求 xff0c 进行依赖性检查 二 安装docker容器引擎 xff0c 需要一个具有sudo权限的账户登录进行操作 1 更新现有yum包 2 遇到提示请输入y
  • AttributeError: module numpy has no attribute int .报错解决方案

    在训练YOLO模型时突然发现这个报错 xff0c 后来发现是numpy版本问题 xff0c yolo官方给的是大于等于1 18 5 xff0c 当你执行pip install r requirements txt命令时 xff0c 他默认安
  • 单片机(嵌入式)程序分层架构

    目录 前言 嵌入式3层软件架构 嵌入式4层软件架构 1 驱动层 操作系统层 中间件层 应用层 嵌入式4层软件架构 2 硬件层 嵌入式微处理芯片 嵌入式存储器系统 嵌入式I O接口 中间层 系统软件层 RTOS 文件系统 GUI 应用层 嵌入
  • FreeRTOS笔记—第一章 FreeRTOS概述

    1 1 认识FreeRTOS 1 1 1 什么是操作系统 操作系统 xff08 Operating System xff0c 简称OS xff09 是管理计算机硬件与软件资源的计算机程序 简单说就是一种管理计算机资源的软件 目的是为了高效
  • 嵌入式工程师 面试题 集-C语言

    预编译 1 什么是预编译 xff0c 何时需要预编译 答 xff1a 预编译又称预处理 就是做些代码文本的替换工作 开头的指令 xff0c 比如拷贝 include 包含的文件代码 xff0c define 宏定义的替换 xff0c 条件编
  • 嵌入式工程师面试题集-MCU_STM32

    一 选择题 1 Cortex M处理器采用的架构是 xff08 D xff09 xff08 A xff09 v4T xff08 B xff09 v5TE xff08 C xff09 v6 xff08 D xff09 v7 2 NVIC可用来
  • 嵌入式工程师面试题集汇总

    主观问题 主观问题 介绍类 请自我介绍 xff1f 为什么不留在xx公司 xff08 为啥离职 xff09 xff1f 你5 10年职业规划是怎样的 xff1f 你还写代码吗 xff1f 从工程师到管理再到工程师你是怎样想的或能承受吗 把你
  • C++解决实际问题 ——a的三次方(accode)

    hello大家好 xff0c 在下 小侠雨落 xff0c 几天不见 xff0c 甚是想念啊 xff01 不说了 xff0c 上标题 a的三次方 咳咳 xff0c 题目描述输入一个整数 a xff0c 输出 a 的三次方 输入格式 一行 xf
  • [CVPR2018]Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

    Bottom Up and Top Down Attention 附 xff1a 论文下载地址 主要贡献 提出了一个新的LSTM组合模型 xff0c 包括了attention LSTM和language LSTM 两个组件 在这个组合模型的
  • python matplotlib绘图总结

    目录 1 画线 a 常规画线 xff1a matplotlib pyplot plot 1 xff09 线的颜色 风格 标记点形状 2 xff09 一图多线 xff0c 并加图例 b 非均匀画线 semilogy c 给特定的点打标签 2
  • mysql now的时间问题

    mysql now 函数调用系统时间不对修正方法 进入mysql命令行 查看时区设置 xff1a show variables like 39 zone 39 select 64 64 time zone 两者保持与系统时间一致 xff0c
  • 【谷粒学院】微信扫码支付(224~238)

    224 项目第十五天内容介绍 225 课程评论实现过程分析 226 课程支付功能需求分析 1 课程支付说明 xff08 1 xff09 课程分为免费课程和付费课程 xff0c 如果是免费课程可以直接观看 xff0c 如果是付费观看的课程 x
  • 故障转移集群搭建高可用文件共享服务器

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言 一 故障转移集群是什么 xff1f 二 什么是仲裁盘 xff1f 三 添加故障转移集群功能 四 故障转移集群的建立 五 配
  • HTTP的报文(详解)

    摘要 我们对于http的了解 xff0c 应该在于 xff0c 我们如果想请求一个资源或者访问一个页面 xff0c 客户端 xff08 我们 xff09 应该向服务器发送一个http请求 xff0c 然后得到响应 xff0c 才能出现我们想

随机推荐

  • Kubernetes部署

    文章目录 1 Kubernetes快速部署1 1 Kubernetes安装要求1 2 安装步骤1 3 准备环境1 4 所有节点安装Docker kubeadm kubelet1 4 1 安装Docker1 4 2 添加kubernetes阿
  • 如何从GitHub克隆带有子模块的仓库,比如FreeRTOS

    情形一 xff1a 首次克隆 git clone recurse submodules git 64 github com FreeRTOS FreeRTOS git 该命令会递归克隆该仓库及所有的子模块 工程目录下的 gitmodules
  • grpc生成go文件命令

    标题 xff1a grpc生成go文件命令 类型 xff1a Golang 内容 xff1a 一 生成tag bp go文件命令 1 protoc go out 61 plugins 61 grpc modules course info
  • Prometheus+grafana监控 k8s集群

    在k8s集群中使用node exporter prometheus grafana对集群进行监控 node exporter组件负责收集节点上的metrics监控数据 xff0c 并将数据推送给prometheus prometheus负责
  • 用IAR给MSP430烧录时出现“Only one MSP-FET ez-FET debugger can be connected to your system during recovery”

    一 问题说明 当安装上IAR软件后 xff0c 新建工程配置好后 xff0c 烧录进MSP430 xff08 我的是MSP430F5529 xff09 中时出现 34 Only one MSP FET ez FET debugger can
  • ConstOS防火墙端口操作

    添加端口 permanent 是永久生效的意思 如果不添加则默认重启后失效 firewall cmd zone 61 public add port 61 3490 tcp permanent 重载端口 firewall cmd reloa
  • 分享学习12864心得

    分享12864显示中文 一 12864基本参数二 代码部分1 得到控制时序2 指令集3 对显示屏写入数据 总结 一 12864基本参数 1 电气参数 电源电压 xff1a VDD xff1a 43 3 0 43 5 5V 显示分辨率 xff
  • pandas 处理excel表格数据的常用方法(python)

    最近助教改作业导出的成绩表格跟老师给的名单顺序不一致 xff0c 脑壳一亮就用pandas写了个脚本自动吧原始导出的成绩誊写到老师给的名单中了哈哈哈 xff0c 这里就记录下用到的pandas处理excel的常用方式 xff08 注意 xf
  • STM32单片机课程自学知识点整理 - 指南版

    课程目录 前言网络课程推荐一 基础知识题外话 xff1a 什么是RISC V xff0c RISC V芯片的发展现状1 原码 补码和反码2 为什么1Byte 61 8bit3 什么是I 2 C4 什么是ICode DCode 系统总线 DM
  • ros与STM32通讯报错:Unable to open port

    设备名称 dev mick 记录学习中遇到的问题 xff0c 以及对应的解决办法 xff0c 免得忘了又要查资料 ros与STM32通讯报错 xff1a Unable to open port ros与STM32通讯报错 xff1a Una
  • Clustering Effect of (Linearized) Adversarial Robust Models

    2021 12 6 第三篇 xff08 NeurIPS 2021 xff09 半精读 原文链接 xff1a Clustering Effect of Linearized Adversarial Robust Models 代码链接 xff
  • Hadoop伪分布式搭建实验的详细操作步骤

    一 建立帐号及更新终端命令 1 1 创建hadoop用户 进入ubuntu系统 打开命令行终端 输入以下语句 创建一个名为hadoop的用户 useradd命令的 m用来指定用户名 s用来指定用户登录时所需的shell文件 sudo use
  • 阿里大佬推荐 Spring源码+Redis+Nginx+MySQL等七篇实战技术文档,

    JVM JVM是Java Virtual Machine xff08 Java虚拟机 xff09 的缩写 xff0c JVM是一种用于计算设备的规范 xff0c 它是一个虚构出来的计算机 xff0c 是通过在实际的计算机上仿真模拟各种计算机
  • 数据库实体关系图(ERD)及其画法

    文章目录 1 什么是ER图 2 什么时候画ER图 2 1 数据库设计2 2 数据库调试2 3 数据库创建和补丁2 4 帮助收集需求 3 ERD符号指南4 概念 逻辑和物理数据模型5 如何绘制ER图 数据库绝对是软件系统不可分割的一部分 在数
  • 基于Ubuntu 20.04 安装 Kalibr 踩坑记录

    小师妹要做相机视觉标定 xff0c 需要制作棋盘格 xff0c 无奈其电脑有些卡 xff0c 对此毫无经验的博主从头开始安装 xff08 此前博主已经安装了ROS环境 xff09 xff0c 如果没有安装ROS环境 xff0c 请参照以下链
  • xavier nx的sd卡系统镜像备份及恢复(非sd卡全盘拷贝,只拷贝实际系统大小)

    1 在主机ubuntu上下载安装gparted xff1a sudo apt install gparted 2 将需要备份的 SD 卡插入读卡器然后插入电脑 xff0c 等待 Linux 读取成功 3 输入sudo gparted启动 g
  • 手把手教你安装ubantu22(详细图文)

    安装平台 xff1a VMware Workstation 16 Pro iso镜像 xff1a ubuntu 22 04 1 desktop amd64 iso 下载连接 xff1a Ubuntu 22 04 1 LTS Jammy Je
  • DataX使用之MongoDB2HDFS

    序 xff1a 本文首先介绍DataX使用 编写配置文件的方式 之MongoDB中的数据导出到HDFS上的一些注意事项 xff0c datax安装没有什么坑 xff0c 所以本文不对此进行详细介绍 xff0c 详细安装过程请自行查看官网 一
  • 进程、线程、协程、并发、并行、IO多路复用

    目录 一 什么是IO操作 二 进程 线程 协程 1 进程是资源分配的基本单位 2 线程是任务调度的基本单位 3 协程 由线程创建并全权负责的小弟 三 并行 并发及其与CPU内核数的关系 1 理解并行与并发的区别 2 进程 线程与CPU核数之
  • webpack看这一篇就够了

    文章目录 今日学习目标1 webpack基本概念 61 61 webpack能做什么 61 61 2 webpack的基本使用2 0 创建项目2 1 解决多次引入资源文件2 2 webpack使用2 3 webpack 更新打包 3 web