[Node] Node.js Webpack常见的模式

webpack学习(十七):使用 process.env.NODE_ENV 区别生产模式和开发模式 demo地址: https://github.com/Lkkkkkkg/webpack-demo 继上一次分离生产模式和开发模式的配置: https://blog.csdn.net/qq593249106/article/details/84964816 合并代码 之前因为开发模式不需要压缩 css,将不同的压缩 rule 分别写在 webpack.prod.js 和 webpack.dev.js... 阅读详情

🖥️ Node.js专栏:Node.js 初级知识
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

✨ 个人主页:CoderHing的个人主页

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力❤️


目录

 一、认识插件 Plugin

认识Plugin

二、CleanWebpackPlugin

三、HtmlWebpackPlugin

生成index.html分析

自定义HTML模版

自定义模版数据填充

四、DefinePlugin

DefinePlugin的介绍

五、Mode模式配置

Mode配置


 一、认识插件 Plugin

认识Plugin

Webpack的另一个核心是Plugin 官方有这样一段话对Plugin的描述

While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wider range of tasks like bundle optimization,asset management and injection of environment variables

翻译过来就是:

loader是用来 特性的模块类型 进行转换

Plugin是可以用于 执行更加广泛的任务 如 打包优化 资源管理 环境变量注入等

二、CleanWebpackPlugin

我们每次修改一些配置 重新打包时 都需要手动删除 dist文件夹

可以借助这个插件来帮助我们完成

首先 安装这个插件

JavaScript
npm install clean-webpack-plugin -D

之后在插件中配置

JavaScript
const  {CleanWebpackPlugin} = require('clean-webpack-plugin')

module.exports = {
    // 其他省略 ...
    plugins:[
        new CleanWebpackPlugin()
    ]
}

三、HtmlWebpackPlugin

另外还有一个不太规范的地方:

我们的HTML文件是编写在根目录的,最终打包的dist文件夹中没有index.html文件的

在进行项目部署时 必须也是需要有对应的入口文件index.html

所以我们也需要对index.html进行打包管理

对HTML进行打饱处理 可以使用另一个插件 HtmlWebpackPlugin

JavaScript
npm install html-webpack-plugin -D

JavaScript
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    // 其他省略 ...
    plugins:[
        new HtmlWebpackPlugin({
            title:"电商项目"
        })
    ]
}

生成index.html分析

自动在dist文件中 生成了一个index.html文件

该文件中也自动添加了我们打包的js文件

这个文件是如何生成的?

默认情况下根据ejs的一个模块来生成的

在html-webpack-plugin的源码中,有一个defaults_index.ejs模块

自定义HTML模版

如果我们想在自己的模块中加入一些比较特别的内容:

如添加一个 noscript标签 在用户的JS被关闭时 给予响应的提示

如在开发vue或react项目时 需要一个可以挂在后续组件的跟标签<div id="app"></div>

自定义模版数据填充

在配置HtmlWebpackPlugin时 我们可以添加如下配置

Temolate: 指定我们曜使用的模块所在的路径

title:在进行HtmlWebpackPlugin.options.title读取时 就会读到该信息

四、DefinePlugin

DefinePlugin的介绍

这个时候编译还会报错 因为我们的模块中还是用到一个 BASE_URL的常量:

这是因为在编译 template模块时 有一个 BASE_URL:

<link rel="icon" href="<%=BASE_URL %">favicon.ico">

但是我们并没有设置过这歌常量值,所以会出现没有定义的错误

这个时候我们可以使用DefinePlugin插件;

DefinePlugin的使用

DefinePlugin允许在编译时创建配置的全局常量 是一个webpack内置的插件(不需要单独安装):

JavaScript
const {DefinePlugin} = require('webpack')

module.exports = {
    // 其他省略
    plugins:[
        new DefinePlugin({
            BASE_URL:'"./"'
        })
    ]
}

五、Mode模式配置

Mode配置

Mode配置选项 可以告知webpack使用相应模式的内置优化

默认值是production(什么都不设置的情况下)

可选值有:'none'|'development'|'production'

Node.js与Webpack 定义:使用Node.js编写服务器端程序编写数据接口,提供网页资源浏览功能等等为后续学习Vue和React等框架做铺垫开发项目直到上线,过程中集成的所有工具和技术Node.js是前端工程化的基础( 因为Node.js可以主动读取前端代码内容)定义:项目是由很多个模块文件组成的提高代码复用性,按需加载,独立作用域需要标准语法导出和导入进行使用Node.js模块化:每个文件当做一个模块,独立作用域,按需加载采用特定的标准语法导出和导入进行使用一般应用在Node.js项目环境中。 阅读详情

相关推荐

Node.js 与 Webpack:前端工程化实践

前端工程化是指将前端开发从“手工作坊”模式升级为“工业化生产”模式的过程。Node.js 如何提供包管理、模块化等基础能力Webpack 的核心概念(入口、Loader、插件)与打包流程两者在实际项目中的配合(如依赖安装、配置执行)从 0 到 1 搭建工程化项目的完整步骤本文从“为什么需要工程化”讲起,用“开餐厅”的故事类比核心概念,逐步拆解 Node.js 和 Webpack 的工作原理,最后通过实战案例演示如何用两者搭建一个现代前端项目。Node.js。

AI架构全栈开发实战笔记 888

小白webpack进行nodejs 前端打包配置

写这篇文章的起因是,最近在github上弄了个HA源码,毫无头绪,也没有说明环境要怎么搭,好了,自己摆弄吧,我看到有py文件,第一感觉就是最有可能是py搭建的项目,正好我有pycharm环境,就用pycharm打开,打开后,要想跑,那当然是要配run/debug configuration了,老实讲,不在行,于是乱配一通一开始以为是Djingo,好,搞了个Djingo.。。。。结果提示这没有dji...

fengsh998的专栏 2万+

保姆级教程:用GPU-Burn给你的NVIDIA Tesla服务器做个“压力体检”(附温度功耗监控脚本)

本文提供了一份详细的GPU服务器压力测试指南,重点介绍如何使用GPU-Burn工具对NVIDIA Tesla服务器进行全面的性能测试和温度功耗监控。从环境部署、多GPU测试策略到专业级监控指标解析,帮助运维人员构建标准化的GPU健康评估体系,确保AI训练和科学计算等关键业务的稳定性。

weixin_30619101的博客 395

nodejs实践---webpack入门教程

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34413802的博客 3706

完整IC设计流程解析&Makefile学习

本文介绍了decorder38项目的文件结构、自动化综合流程和Makefile使用方法。项目包含RTL到GDSII全流程文件,重点关注syn目录中的综合脚本。通过make dc命令运行综合流程,生成网表、约束和时序文件。关键报告如qor.rpt、area.rpt和min_vio.rpt用于分析综合质量、面积和时序。Makefile部分解释了其基本语法、IC设计中的典型结构,包括目标定义、命令执行和特殊声明,强调了其在自动化构建和依赖管理中的重要性。

m0_63352623的博客 856

告别卡顿!用LVGL+DMA刷新STM32F407的SPI屏幕,性能提升实战

本文详细介绍了如何通过LVGL+DMA技术优化STM32F407驱动SPI屏幕的性能,实现接近60FPS的流畅刷新。从硬件瓶颈分析到SPI与DMA的精细化配置,再到LVGL的双缓冲机制与局部刷新优化,提供了一套完整的性能提升方案。特别适合嵌入式GUI开发中面临卡顿问题的工程师参考。

weixin_42531588的博客 380

webpack使用及其node

webpack配置文件名 默认为:webpack.config.js 工程中需要用到node 东西时 ,先npm init package.json是node生成的 由npm init来的。可进行一些包的配置 package-lock.json 文件是 npm install生成 可以在package.json 文件的script中 设置终端的输入命令,且package.json中优先执行本地的依赖,在去执行全局。而终端命令都是执行全局变量。 本地安装开发时依赖:npm install webpack@3.

jgsafd的博客 1074

(学习笔记)机器人自主导航从零开始第四步———Rviz、Gazebo、Meshlab的安装

一、Rviz的安装 Rviz是一个

qq_59475883的博客 5057

nodejs和webpack基础

node环境搭建和webpack入门配置

QB哥欢迎您 2160

RT-DETR改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型

本文记录的是基于MobileNet V4的RT-DETR目标检测轻量化改进方法研究。通过整合UIBMobile MQA以及优化的NAS策略能够在在不降低性能指标的前提下,降低计算成本。本文配置了原论文中和五种模型,以满足不同的需求。

Limiiiing的博客 1923

【人工智能之深度学习】23. 推荐系统升级实战:LightGCN重构协同过滤全流程(Amazon-Beauty数据集+完整代码)

摘要:传统协同过滤(如矩阵分解)在电商推荐中存在三大痛点:忽略用户-物品高阶关联、交互数据稀疏导致冷启动、特征工程依赖人工设计。本文基于Amazon-Beauty数据集(含20万+用户交互),用LightGCN图神经网络重构推荐系统:1)构建用户-物品二部图,通过3层图卷积捕捉“用户→物品→用户”的多跳关联;2)采用BPR负采样损失优化嵌入学习,缓解数据稀疏;3)端到端输出用户/物品嵌入,无需人工特征。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1494

mocha-webpack 项目常见问题解决方案

mocha-webpack 项目常见问题解决方案 1. 项目基础介绍 mocha-webpack 是一个集成Webpack预编译器的mocha测试运行器。它可以在执行测试前自动预编译测试文件,并且处理source-maps,而不会将任何文件写入磁盘。这个项目主要使用JavaScript编程语言,依赖于Node.js环境。 2. 新手常见问题及解决步骤 问题一:如何安装和配置 mocha-webpa...

gitblog_00805的博客 1003

基于3D相机的人体穴位识别与标注系统——完整Python实现方案

摘要 本文提出了一种基于3D相机的人体穴位识别与标注系统完整实现方案。系统采用Intel RealSense D435相机实时采集RGB-D数据,结合MediaPipe Pose模型进行人体33个关键骨骼点的三维姿态估计。通过建立穴位与骨骼关键点的映射关系,利用相机内参和深度信息将二维图像坐标转换为三维空间坐标。系统采用模块化设计,包含数据采集层、算法处理层、坐标转换层和可视化层,实现了穴位定位、三维坐标转换和点云可视化功能。关键技术包括:基于骨度折量法的穴位映射算法、深度图像到三维点云的转换方法,以及Op

AI的内部世界的博客 273

webpack安装与使用

webpack安装与使用

IT菜鸟 1627

基于STM32设计的ECG+PPG人体参数测量系统(华为云IOT)(217)

该系统的核心是基于STM32F103RCT6微控制器,这是一种高性能、低功耗的嵌入式处理器,适用于各种复杂的控制和数据处理任务。系统利用先进的传感器技术,如光电传感器PulseSensor模块来准确测量人体脉搏血氧饱和度及心率(PPG),同时采用AD8232生物电信号采集模块捕捉并处理人体的心电图信号(ECG),从而全面反映用户的心脏活动状态。

1万+

假人有限元模型

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

通过Node.js API启动webpack

前面的话 webpack除了可以通过可执行命令启动webpack,还通过node.jsAPI启动webpack 。通过调用webpack模块暴露出的API,可在Node.js程序中调用webpackAPI执行构建。下面介绍如何在node中通过可执行文件启动webpack。 整体架构 main.js入口文件 webpack.config.js: webpack配置文件 webpack.js:在n...

小柒的前端之旅 2022

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Node.js】Node.js和Webpack

【Node.js】Node.js和Webpack

“欢迎来到我的个人博客,我是一名热爱前端技术、致力于提升用户体验的前端开发工程师。” 743

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Node.js和Vue

浅谈为什么vue前端项目要使用nodejs 一、传统的JavaScript 传统的js是运行在浏览器上的,因为浏览器内核分为两个部分: 渲染引擎---渲染HTML和CSS, JavaScript 引擎---负责运行 JavaScript,随着技术的发展, Chrome 使用的 JavaScript 引擎是 V8,它的速度非常快且性能好,同时由2009年5月Ryan Dahl开发的Node.js诞生。 二、什么是Node.js? Node.js 是一个基于 Chrome V8 引擎的 JavaS.

MRGCODING 1万+

Node.js 和 webpack 下载安装——小白教程

前端学习Vue会用到webpack,用webpack需要安装node.js Node.js下载地址 点击跳转 1,下载安装node.js 推荐百度云离线下载,chrome和迅雷我这边都很慢 cmd中输入node -v 和 npm -v 出现安装版本,证明安装成功 (Node.js自带软件包管理工具npm) Node Package Manager 2,环境配置 更换镜像 依然在cmd输入命令...

qwe122343的博客 3415

《黑马前端ajax+node.js+webpack+git教程》(笔记)——黑马node.js教程+黑马webpack教程(nodejs教程)

if (err) {else {console.log('写入成功')})if (err) {else {})/g表示全局匹配默认导出和导入命名导出和导入唯一出口文件index.js不是必须的,如果不存在,就会到package.json中去找定义的入口文件(main属性指定的入口文件)npm i具体参考文章:webpack介绍(现代JS应用静态模块打包工具,在内部构建依赖图,映射项目所需模块,生成打包后的文件)webpack.config.js。

Dontla的博客 2015

node-polyfill-webpack-plugin:填补Webpack中的Node.js核心模块

node-polyfill-webpack-plugin:填补Webpack中的Node.js核心模块 在Webpack项目中,有时我们需要使用Node.js的核心模块,然而这些模块在浏览器环境中是不可用的。这就需要我们使用polyfill来填补这些模块,以确保代码能够在浏览器中正常运行。node-polyfill-webpack-plugin就是这样一款优秀的插件,它能够帮助我们在Webpack...

gitblog_00076的博客 1305

Node.js与webpack(三)

生产模式是开发完成代码后,我们需要得到代码将来部署上线。这个模式下我们主要对代码进行优化,让其运行性能更好。优化代码运行性能优化代码打包速度之前的目录结构现在的目录。

lklalmq的博客 1405

webpack-node-externals 常见问题解决方案

`webpack-node-externals` 是一个用于 Webpack 的插件,主要功能是帮助开发者在打包 Node.js 应用时排除 `node_modules` 目录中的模块。这样可以避免将这些模块打包到最终的输出文件中,从而减少打包文件的大小,并提高打包速度。该项目的主要编程语言是 JavaScript。 ## 新手使用注意事项及解决方案 ### 1. 安装和配置问题 **问题描...

gitblog_00384的博客 999

Webpack-contrib/node-loader 项目常见问题解决方案

Webpack-contrib/node-loader 项目常见问题解决方案 1. 项目基础介绍和主要编程语言 webpack-contrib/node-loader 是一个用于 Webpack 的加载器(loader),它允许在 Webpack 环境中加载原生 Node.js 模块。该项目主要是用 JavaScript 编写的,它使得在 Webpack 配置中可以引入 Node.js 模块,而无...

gitblog_01139的博客 1027

Node.js和webpack入门-个人学习笔记

个人关于Node.js入门和Webpack-入门的学习笔记,不喜勿看,有侵权请联系作者

m0_69356164的博客 916
上一篇: [Node] Node.js Webpack打包图片-Js-Vue
下一篇: Vue.js | Vue.js开发 初体验
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coderHing[专注前端]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值