webpack 打包 -- 整体步骤整合

Webpack-源码二,整体调用流程与Tapable事件流 在上一篇博客中分析了webpack打包以后的bundle文件,了解webpack是如何通过require模拟commonjs标准加载模块的。下面探索webpack整体调用的流程,也就是如何通过shell输入webpack命令就可以实现整个编译、打包过程的。 这篇博客只对整个流程及相关的事件流进行分析,不具体分析每个步骤中的具体实现。也就是,对于plugin和loader的具体分析请移步后面的博客 阅读详情

完整配置

1.上面将这个步骤一一拆解,现在是一个整体讲解
步骤
  • 项目目录
├── dist     // 打包后的文件
├── src      //  源码文件
|   ├── css
|   └── js
|   └── index.html  
|   └── main.js    // 这是 main.js 是我们项目的JS入口文件
├── package.json   // npm init 生成的NPM包的所有相关信息,其中sprict可以脚本
├── .babelrc //将高级语法转换成低级语法
└── webpack.config.js // 配置webpack的配置文件
1.创建一个上面的结构目录
2.nmp init 生成一个package.json 配置文件
3.安装webpack两种方式任选:npm i webpack -g全局安装/npm i webpack --save-dev安装开发环境中
4.如果使用的是webpack4 还需要安装:npm i webpack-cli -g 
5.在根目录创建 -- webpack.config.js 文件
6.安装 webpack-dev-server 内存中打包js,开启一个本地服务 -- npm i webpack-dev-server --save-dev
7.安装html-webpack-plugin  内存中生成html 并且将js自动加入html中 -- npm i html-webpack-plugin --save-dev
8.下载loader处理css 文件:
   8.1.npm i style-loader css-loader --save-dev  // 安装处理style  和css
   8.2.npm i less-loader less -D                 // 安装处理less
   8.3.npm i sass-loader node-sass --save-dev   // 安装处理 sas
9.下载loader处理css background中的url,和字体库中的字体 npm install url-loader file-loader --save-dev
10.把js 高级语法es6 转成低级语法:
    10.1.npm i babel-core babel-loader babel-plugin-transform-runtime -D
    10.2.npm i babel-preset-env babel-preset-stage-0 -D
11.配置吧高级语法转换低级语法的文件在根目录叫.babelrc
12..babelrc配置的内容:
    {
         "presets": ["env", "stage-0"],
          "plugins": ["transform-runtime"]
   }
13.在package.json 配置快速启动(运行指令是npm run dev):
"scripts": {
    "dev": "webpack-dev-server"
  },

webpack.config.js – 配置
const path = require('path');
const webpack = require('webpack'); // 启用热更新的 第2步
const htmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    entry:path.join(__dirname,'/src/main.js') , // 入口,表示,要使用 webpack 打包哪个文件
    output: {                                   // 输出文件相关的配置
        path: path.join(__dirname, '/dist'),   // 指定 打包好的文件,输出到哪个目录中去
        filename: 'bundle.js'                   // 这是指定 输出的文件的名称
    },
    devServer: {
        open: true, // 自动打开浏览器
        port: 3000, // 设置启动时候的运行端口
        contentBase: 'src', // 指定托管的根目录
        hot: true // 启用热更新 的 第1步
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(), // new 一个热更新的 模块对象, 这是 启用热更新的第 3 步
        new htmlWebpackPlugin({ // 创建一个 在内存中 生成 HTML  页面的插件
            template: path.join(__dirname, './src/index.html'), // 指定 模板页面,将来会根据指定的页面路径,去生成内存中的 页面
            filename: 'index.html' // 指定生成在内存的页面的名称
        })
    ],
    module: { // 这个节点,用于配置 所有 第三方模块 加载器
        rules: [ // 所有第三方模块的 匹配规则
            { test: /\.css$/, use: ['style-loader', 'css-loader'] }, //  配置处理 .css 文件的第三方loader 规则
            { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, //配置处理 .less 文件的第三方 loader 规则
            { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, // 配置处理 .scss 文件的 第三方 loader 规则
            { test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=7631&name=[hash:8]-[name].[ext]' },
            { test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' },
            { test:/\.js$/, use: 'babel-loader', exclude:/node_modules/ },
        ]
    }
}
main.js – 所有js,css 导包的入口
import $ from 'jquery'
// 导入css文件下的index.css
import './css/index.css'

$(function () {
    $('li:odd').css('backgroundColor', 'red');
    $('li:even').css('backgroundColor', function () {
        return '#' + 'D97634'
    })
});
解惑 – 为什么控制台输入指令后会执行打包
1.当我们想打包成实体文件在控制台输入 webpack 指令,当我们想执行在内存中
打包时候,在package.json 配置好指令直接运行npm run dev
2.当我们在控制台输入这两个指令后webpack 或 webpack-dev-server 的时候,工
具会发现,我们并没有提供 要打包 的文件的 入口 和 出口文件,此时,他会检查
项目根目录中的配置文件,并读取这个文件,就拿到了导出的这个 配置对象,然
后根据这个对象,进行打包构建
。
3.简单的说就是输入指令后会去找webpack.config.js 文件,并且找到
module.exports暴露出来的配置。
细节如何导入npm 下载文件中的css 文件,参考上个目录中对字体配置的讲解
跟多具体详情我分为了四个章节,如果有基础的起始看这个两个章节就够了,想了解更多的可以留言,我会吧基础章节也会出来
Webpack前端整合到SpringMVC项目中 Webpack前端整合到SpringMVC项目中 背景 容器引擎系统不支持直接部署Nodejs环境,需要结合maven插件在jenkins构建阶段编译Webpack项目。这里我把前端代码整合到SpringMVC项目中,作为一个整体工程进行打包部署。 SpringMVC是已有项目,需要保留旧版本。这次重构前端,并在后端添加单独API模块。 目录结构 |-- src |-- fronten... 阅读详情

相关推荐

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载)

本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。

weixin_29223603的博客 388

FileManager Webpack Plugin 使用教程

FileManager Webpack Plugin 使用教程 项目介绍 FileManager Webpack Plugin 是一个用于管理 Webpack 打包后文件路径的插件。它可以帮助开发者在构建过程中自动执行文件的复制、移动、删除和压缩等操作,从而简化部署流程。该插件适用于需要在构建后对文件进行额外处理的场景,如将打包后的文件输出到指定的后端文件夹,或者自动生成压缩包等。 项目快速启动 ...

gitblog_00107的博客 1552

大白话系列:什么是微服务

用大白话和实际例子来通俗易懂地告诉你什么是微服务~

2401_87403086的博客 1242

探索高效文件管理:FileManager Webpack Plugin

探索高效文件管理:FileManager Webpack Plugin 在现代前端开发中,构建工具如Webpack已成为不可或缺的一部分。然而,随着项目规模的扩大,构建过程中的文件管理需求也日益复杂。今天,我们将介绍一个强大的工具——FileManager Webpack Plugin,它能够极大地简化文件操作流程,提升开发效率。 项目介绍 FileManager Webpack Plugin 是...

gitblog_00174的博客 521

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 854

python爬取《你好, 李焕英》豆瓣评论数据

# 导入工具包 import requests from bs4 import BeautifulSoup import time import pandas as pd import numpy as np # 请求头 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'} # =

python技巧分享 3457

filemanager-webpack-plugin 对构建前后文件进行操作

这个 Webpack 插件允许您在构建前或构建后复制、归档(.zip/.tar/.tar.gz)、移动、删除文件和目录。

weixin_45239190的博客 1696

OpenAI Error: 403 Country, region, or territory not supported [Python]

从OpenAI的API服务中获取数据时,由于你所在的国家、地区或领土不被支持,因此请求被拒绝了

suiusoar 5668

使用filemanager-webpack-plugin将前端项目打包成zip压缩包

使用filemanager-webpack-plugin插件将前端的dist目录打包成zip压缩包,省去手动压缩,进一步可以配合 ali toolkit 或者jekenis进行自动化部署(本文不介绍自动化部署)。找到webpack配置节点,新增插件配置。

jinpeng741143592的博客 1846

Autosar PNC网络管理配置-UserData的使用

之前配置的网络管理报文中的data都由ComM管理,后面客户新增了需求,最后两个byte需要发送,本文记录一下相关配置的修改能配置生成的,尽量不手码,毕竟手写一堆bug~

赞的博客 1906

6D位姿估计系列(一)

本研究提出FoundationPose,一个统一的基础模型框架,支持基于CAD模型和无模型的6D物体姿态估计与跟踪。通过神经隐式表示实现高效新视图合成,结合大规模合成数据训练和对比学习策略,模型展现出强大的泛化能力。实验表明,该方法在LINEMOD、YCB-Video等多个基准数据集上显著优于现有专门化方法,处理速度达32Hz,且无需目标域微调。该工作为多场景物体姿态估计提供了通用解决方案。

qq625924821的博客 562

filemanager-webpack-plugin将资源打成zip包并且存档

constFileManagerPlugin=require('filemanager-webpack-plugin') constFStream=require('fs'); constmyVersionFile_path='public/version.js'; constmyOptDir=process.cwd().split(/[\\/]/).pop(); functionsetVersion(config){ constversion=new...

我的前端开发路 2350

Google Earth Engine:LandTrendr (Landsat Collection 2)全更新使用(代码调用+UI交互)

本文介绍了使用Landsat Collection 2进行连续变化监测的分析方法,包含代码实现和可视化界面两部分。代码部分通过Google Earth Engine平台运行LandTrendr算法,设置参数包括时间范围、光谱指数、变化检测阈值等,最终生成变化幅度和检测年份的可视化图层,并将结果导出至Google Drive。可视化界面部分展示了基于LandTrendr的土地覆盖变化结果,结合Landsat影像进行分析。整个方法实现了从数据处理到结果展示的完整流程,适用于森林覆盖等环境变化监测。

此星光明博客 211

关于——webpack打包项目的步骤

webpack的了解和用法 webpack介绍 webpack是一个功能强大的打包工具,他能够将多个相互依赖的js文件,按照模块化标准整合为同一个js文件,使用了插件后,还可以实现css文件,图片文件等其他文件的打包。 webpack官方(中文)文档 webpack 的特点? js依赖进行整合处理 (打包整合) 一些预处理的sass,less可以在环境中进行编译 (转换) 可以对js、html、图片等进行压缩 (优化) webpack的核心? entry 入口文件 // 好比mai

qq_45955475的博客 564

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

浅谈WebPack打包流程,原理

shell 与 config 解析 每次在命令行输入 webpack 后,操作系统都会去调用./node_modules/.bin/webpack这个 shell 脚本。这个脚本会去调用./node_modules/webpack/bin/webpack.js并追加输入的参数,如 -p , -w 。(图中 webpack.js 是 webpack 的启动文件,而 $@ 是后缀参数) 在...

还不是【web】的博客 7350

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

教你使用webpack打包你的项目

webpack介绍 webpack是一个功能强大的打包工具,他能够将多个相互依赖的js文件,按照模块化标准整合为同一个js文件,使用了插件后,还可以实现css文件,图片文件等其他文件的打包。 安装 npm install -g webpack ...

王湘佰的博客 1000

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Webpack是如何实现打包的?

Webpack作为现代前端构建工具,通过模块整合、类型转换和兼容处理三大核心能力,解决浏览器原生不支持模块化及非JS文件解析的问题。其打包流程包含初始化配置、依赖解析、模块转换、Chunk生成、优化和输出六个关键步骤,借助Tapable插件系统、Loader机制和自定义模块加载实现高效构建。

1069

【webpack】webpack打包规律笔记

前言 由于以前学习时新知识太多,导致结果过于注意细节实现,从而忽略整体究竟怎么工作。这次重刷webpack理清下思路。 而且以前特别特别讨厌学webpack,最近学新知识发现有涉及webpack,所以必须得理一下。 webpack打包规律 最简单的流程上说,webpack打包就是在页面引入了自己构建好的js文件。而这个js文件里有个自执行函数,里面的参数,就是webpack从各个文件中拿到...

不忘初心,坚定道路! 493

了解Webpack:现代前端开发的静态模块打包器

Webpack是一个功能强大的前端构建工具,它通过模块打包、依赖管理、文件转换、代码拆分和插件系统等功能,简化了前端项目的构建流程,提高了开发效率。通过本文的介绍和实践案例,相信读者已经对Webpack有了更深入的了解,并能够在实际项目中灵活应用Webpack进行前端构建。

huaqianzkh的专栏 1472

从0开始,自己实行webpack打包,不会打我(手动滑稽)

webpack webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。 接下来我们从0开始,一步一步实现我们的打包,作为入门,希望大家有所收获。 源码地址,欢饮Star[github.com/WangDeTao/w…] 整体项目模块介绍 - 00simple(只包含简单的js文件打包) - 01simple-dev-server(本地的服务,包...

weixin_34092455的博客 124

pod打包原理_webpack的打包原理

0.模块系统前端产品的交付是基于浏览器,这些资源是通过增量加载的方式运行到浏览器端,如何在开发环境组织好这些碎片化的代码和资源,并且保证他们在浏览器端快速、优雅的加载和更新,就需要一个模块化系统。这个理想中的模块化系统是前端工程师多年来一直探索的难题。模块系统主要解决模块的定义、依赖和导出。 原始的标签加载方式有一些常见的弊端:例如全局作用域下容易造成变量冲突;文件只能按照的书写顺序进行加载;开发...

weixin_42517406的博客 292

webpack

webpack是一个前端模块打包工具 他可以将多个模块按照依赖关系进行静态分析 并生成一个或多个打包后的文件1.模块打包将项目中的所有模块(JS CSS Img等)当做一个整体 通过依赖关系将它们打包成一个或多个静态资源文件2.依赖管理webpack可以分析模块之间的依赖关系 根据配置的入口文件找出所有依赖的模块 并将其整合到打包结果中3.文件转换。

HBR666_的博客 2292

【 webpack系列(二)】一个基于CommonJS模块化方案的小demo —— 带你简单体验 webpack 打包流程

文章目录一. webpack基础1.1 前端模块化开发1.2 打包二. webpack初体验2.1 安装webpack2.2 创建项目目录结构2.3 npm初始化2.4 代码编写2.4.1 math.js(模块代码)2.4.2 main.js(入口文件)2.4.3 index.html(浏览器展示文件)2.5 webpack打包2.6 修改引入文件为打包输出文件三. 写在最后 一. webpack基础 webpack —— JavaScript 应用程序的静态模块打包器(module bundler)。 它

JZevin的博客 634

webpack5

webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容

D_xw_的博客 964

从0开始,自己实行webpack打包,不会打我(手动滑稽

webpack webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。 接下来我们从0开始,一步一步实现我们的打包,作为入门,希望大家有所收获。 源码地址,欢饮Star[https://github.com/WangDeTao/webpack-simple-demo] 整体项目模块介绍 - 00simple(只包含简单的js文件打包) - 01...

weixin_39842504的博客 104

【webpack】---模块打包机webpack基础使用---

【webpack】---模块打包机webpack基础使用--- 001、什么是webpack? 作用有哪些?WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用Webpack的工作方式是:把你的项目当做一个整体,...

weixin_33978044的博客 118
上一篇: webpack 打包 -- 步骤分解
Py_CCY
博客等级 码龄9年 5粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值