Node | Node.js Webpack搭建本地服务器

Vue.js使用Node.js吗?编程探讨 综上所述,虽然在使用Vue.js本身时并不需要安装Node.js,但在Vue.js开发过程中,Node.js提供了很多有用的工具和功能,如包管理器、开发服务器、打包工具和服务器端渲染等。因此,在构建和开发Vue.js应用程序时,安装Node.js是非常推荐的。Vue.js是一种流行的JavaScript前端框架,而Node.js是一个基于Chrome V8引擎的JavaScript运行时环境。尤其是在构建大型、复杂的Vue.js应用程序时,Node.js为我们提供了很多有用的工具和生态系统。 阅读详情

🖥️ Node.js专栏:Node.js 初级知识 Webpack搭建本地服务器
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

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

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

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


目录

一、开启本地服务器

为什么要搭建本地服务器?

webpack-dev-server

二、HMR热模块替换

认识模块热替换(HMR)

开启HMR

框架的HMR

三、devServer配置

host配置

Port  open compress

四、开发和生产环境

如果区分开发环境

入口文件解析

区分开发和生产环境配置


一、开启本地服务器

为什么要搭建本地服务器?

目前开发代码,运行需要有两个操作:

        一:npm run build 编译相关的代码

        二:通过live server或直接通过浏览器,打开index.html代码 查看效果;

这个过程经常操作会影响我们的开发效率,希望可以做到 当文件发生变化时 可以自动完成编译和展示

为了完成自动编译 webpack提供了几种可选方案

        Webpack watch mode;

        Webpack-dev-server(常用);

        webpack-dev-middleware

webpack-dev-server

事实上它本身没有自动刷新浏览器的功能的:

        目前我们可以在VSCode中使用live-server来完成这样的功能

        但是 我们希望在不适用live-server的情况下,可以具备live reloading(实时重新加载)的功能

安装webpack-dev-server

JavaScript
npm install webpack-dev-server -D

修改配合文件 启动时 加上serve参数

JavaScript
devServer:{},
---------------------
"serve":"webpack serve --config itcode.config.js",

webpack-dev-server在编译后不会写入任何输出文件,而是将 js文件保留到内存中

        事实上 webpack-dev-server使用了一个库 叫 memfs(memory-fs webpack自己写的)

二、HMR热模块替换

认识模块热替换(HMR)

什么是HMR呢?

        HMR的全称是 Hot Module Replacement 翻译为 模块热替换

        模块热替换是指在应用程序运行过程中,替换 添加 删除模块 而无需重新刷新整个页面

HMR通过下面几种方式,来提高开发的速度

        不重新加载整个页面 可以保留某些应用程序的状态不丢失

        只更新需要变化的内容 节省开发时间

        修改了css js源代码 会立即在浏览器更新 相当于直接在浏览器的devtools中直接修改样式

如何使用HMR?

        默认情况下,webpack-dev-server已经支持HMR 我们只需要开启即可!(默认为开启)

        在不开启HMR的情况下,当我们修改了源代码之后,整个页面都刷新 使用的是live reloading;

开启HMR

修改webpack的配置

JavaScript
devServer:{
    // 默认开启
    hot:true
},

 

但是你会发现 当我们修改了模块的代码时 依然刷新整个页面

        因为 我们需要去指定哪些模块发生更新时 进行HMR.

JavaScript
if (module.hot){
    module.hot.accept("./utils.js",()=>{
        console.log("utils更新了")
    })
}

框架的HMR

在开发其他项目中 我们是否需要经常手动去写入 module.hot.accpet相关的api呢?

        如 vue react项目 我们修改了组件 希望进行热更新 这根时候 应该如何去操作?

社区已经针对这些有很成熟的方案了:

        如 vue开发中 使用vue-loader 此loader支持vue组件的HMR提供开箱即用的体验

        如react开发中 使用react hot Loader 实时调整react组件(目前React官方已经弃用了,改为react-refresh)

三、devServer配置

host配置

host设置主机地址:

        默认为localhost

        如果希望其他地方也可以访问 可以设置为0.0.0.0

JavaScript
devServer:{
    hot:true,
    post:"0.0.0.0",
    port:8888
},

localhost和0.0.0.0的区别

        localhost:本质是一个域名 通常情况下 会被解析成127.0.0.1

        127.0.0.1:回环地址(Loop Back Address) 表达的意思是主机自己发出去的包 直接被自己接收

                正常的数据包经常 应用层 - 传输层 - 网络层 - 数据链路层 - 物理层;

                而回环地址 ,是在 网络层 直接被获取到了 是不会经过 数据链路层和物理层的

                如 我们监听127.0.0.1时 在同一个网段下的主机中 通过ip地址是不能访问的

        0.0.0.0: 监听IPV4上所有的地址 再根据端口找到不同的应用程序.

                如 我们监听0.0.0.0时 在同一个网段下的主机中,通过ip地址是可以访问的

Port  open compress

port设置监听的端口,默认为8080

open是否打开浏览器:

        默认为false 设置为true时 会打开浏览器

        也可以设置为类似于Google Chrome等值

compress是否为静态文件开启gzip compression

        默认为false 可以设置为true

JavaScript
devServer:{
    hot:true,
    post:"0.0.0.0",
    port:8888,
    // 自动打开 浏览器 false为关闭
    open:flase,
    // 压缩 如果为true 会对文件进行压缩  会通过gzip进行压缩
    compress:false
},

四、开发和生产环境

如果区分开发环境

目前我们所有的webpack配置信息都是放到一个配置文件中: webpack.config.js

        当配置越来越多时 这个文件就会越来越不易维护

        且 某些配置是在开发环境需要使用的 某些配置是在生产环境需要的 当前某些环境是在开发和生产都需要使用的

        所以 我们最好对配置进行划分 方便我们维护和管理

那么 再启动时 如何可以区分不同的配置呢?

        一:编写两个不同的配置文件 开发和生产时 分别加载不同的配置文件即可

        二:使用相同的一个入口配置文件 通过设置参数来区分它们

入口文件解析

我们之前编写入口文件的规则是这样的:./src/index.js 但是 我们的配置文件所在的位置变成了config目录 我们是否应该编程 ../src/index.js呢?

        如果这样编写 会发现是报错的 依然要写成./src/index.ks

        因为入口文件其实是和另一个属性是有关的 context

context的作用是用于解析入口(entry point)和加载器的(loader)

        官方:默认是当前路径(经过测试 默认应该是webpack的启动目录)

        另外推荐在配置中传入一个值;

JavaScript
// context是配置文件所在目录
module.exports = {
    context:path.resolve(__dirname,"./"),
    entry:"../src/index.js"
}

区分开发和生产环境配置

这里我们创建三个文件:

        webpack.comm.conf.js

        webpack.dev.conf.js

        webpack.prod.conf.js

SPAD 单光子雪崩二极管 SPAD,全称为,是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触发一个雪崩效应,产生一个可以被检测到的电信号。 阅读详情

相关推荐

信创改造实战:SpringBoot项目迁移到宝兰德BES 9.5.5的完整避坑指南(附依赖与web.xml配置)

本文详细介绍了将SpringBoot项目迁移到宝兰德BES 9.5.5的完整流程,包括依赖改造、web.xml配置降级等关键步骤。通过实战案例和避坑指南,帮助开发者高效完成国产中间件适配,确保项目平稳运行。特别针对Tomcat依赖排除和BES适配器选择提供了专业建议。

weixin_30689307的博客 742

12-安装node.js和webpack的完整步骤

【代码】安装webpack的完整步骤。

书启鸿蒙知秋枫 3044

ESP32-IDF HTTP服务器实战:从零搭建Web控制界面

本文详细介绍了如何在ESP32平台上使用ESP-IDF框架从零搭建HTTP服务器,并创建Web控制界面。内容涵盖环境配置、服务器基础设置、Web页面处理、GPIO控制接口实现及AJAX异步请求处理,帮助开发者快速掌握物联网设备Web控制开发。

efc123456的博客 1063

【前端基建】Nodejs开发dev-serve,实现proxy正向代理,解决项目本地跨域问题

前端静态资源项目可通过启服务的方式决绝跨域的问题,也可以解决必要时使用网络访问才能实现的功能,比如网页调取摄像头,微信开发授权后重定向地址必须为网络地址等。

weixin_40289389的博客 1610

从Protocol到硬件控制:揭秘高通UEFI中ABL与XBL的协作机制

本文深入解析了高通UEFI架构中ABL与XBL的协作机制,重点探讨了Protocol通信在硬件控制中的关键作用。通过对比传统GPIO控制方式,揭示了Protocol架构在安全性、可维护性和灵活性方面的优势,并提供了关机充电场景的实战案例分析及调试技巧。

weixin_29185199的博客 431

使用LogisticRegression和LightGBM模型对信贷违约进行预测----基于kaggle比赛数据

3.分离数值型变量与类别型变量,发现有些数值型变量因为输入不规范,比如数值中含有字符(28_,_10000_等)被划分为类别型变量 ,比如 'Age','Annual_Income','Num_of_Loan', 'Num_of_Delayed_Payment', 'Changed_Credit_Limit','Credit_Mix','Monthly_Balance', 'Outstanding_Debt' ,'Amount_invested_monthly'等。三、分箱,woe编码,计算IV值。

I_am_a_big_tiger的博客 1682

手把手教你nodejs搭建本地服务器(一)

7、建议使用nodemon,就不会修改一次运行一次了,安装: npm install nodemon -g 全局安装。2、创建server.js文件,node server.js。1、创建一个node文件后,就很npm init,在。会生成一个pakeage.json文件。3、安装express。

qq_50952645的博客 1966

Unity地形数据高效转换:从Terrain到3DMAX的OBJ导出实战

本文详细解析了Unity地形数据无法直接导入3DMAX的原因,并提供了高效转换的实战方案。通过编写自定义编辑器脚本,将Unity Terrain的高度图数据“烘焙”为静态网格模型,并以OBJ格式导出。文章重点讲解了核心代码逻辑、分辨率选择对模型精度的影响,以及在3DMAX中导入和优化模型的实用技巧,旨在打通Unity与3DMAX之间的数据协作壁垒。

sky77的博客 448

当我们尝试运行webpack-dev服务时,报node_modules/.bin/webpack-dev-server: Permission denied权限被拒绝要如何解决?

权限被拒绝?

mazhifeixxr的博客 2362

【Cmder】--- Windows11 配置CMD神器 (超详细 持续更新中)

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。

秋知叶i 1万+

基于阿里云物联网平台设计的实时图传系统_采用MQTT协议传输图像

当前基于MQTT协议设计了一个实时图传系统,通过这个项目来演示,两个MQTT设备如何互相订阅,进行消息流转。 在阿里云服务器上创建2个设备,分为为设备A和设备B;设备A负责采集本地摄像头画面上传,设备B负责接收设备A上传的数据然后解析显示出来。在阿里云服务器上需要配置云产品流转,让设备A的数据上传后自动发送给设备B。这样就完成了视频画面数据的流转。不过因为阿里云的最大数据限制,每次最大发送10240字节的数据。

1万+

深入理解memfs:内存文件系统的使用指南

memfs是一个纯内存文件系统实现,它完全模拟了Node.js的文件系统API,但所有操作都在内存中进行,不会实际写入磁盘。这种特性使其成为单元测试、快速原型开发以及需要临时文件系统的理想选择。 ## 基础使用 ### 文件读写操作 memfs提供了与Node.js原生fs模块完全一致的API,使用方式也完全相同: ```javascript import { fs } from 'mem...

gitblog_00022的博客 698

高通IPA硬件加速介绍

‌ 高通IPA (Internet Protocol Accelerator)模块是一种硬件加速模块,由高通公司(Qualcomm)提供,主要用于优化移动设备上的网络数据传输,特别是通过 LTE 、 5G 等移动网络的数据传输‌‌。IPA模块通过硬件加速,显著提高了数据传输的速度和效率,同时降低了设备的功耗,并提供了更稳定的网络连接,减少了数据传输中的丢包和延迟‌。

四儿家的小祖宗的博客 1626

Webpack:基于node.js搭建本地服务器与webpack配置的抽离

webpack提供了一个可选的本地开发服务器,本地服务器基于node.js搭建,内部使用express框架,实现浏览器自动刷新代码修改后的结果(代码的修改会储存在内存里面而不是打包后的磁盘里,内存的读取速度会比磁盘读取速度快很多)。 1.搭建本地服务器 npm install webpack-dev-server@2.9.1 --save-dev devserver作为webpack中的一个选项,选项本身可以设置如下属性: contentBase:为哪一个文件夹提供本地服务,默认是根文件夹 ..

A_lexzanda的博客 462

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Webpack配置

Webpack webpack依赖于Node,故要先装node,在用Node的npm工具安装webpack 1打包 文件准备,main.js打包成bundle.js 创建一个webpack.config.js文件 首先引入path模块拼接路径 接着导出 module.export={ //输入 entry:‘main.js’ //输出 output:{ path:path.join(__dirname,‘dist’) //输出的那个文件所在的位置 filename:'bundle.js’文件名 } } 接

lin_fightin的博客 1292

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

前端小白入门webpack之搭建本地服务器

文章目录前言一、使用流程?总结今日推荐 前言 webpack提供了一个可选的本地开发服务器,这个本地服务器基于node.js搭建,内部使用express框架,可以实现我们想要的让浏览器自动刷新显示我们修改后的结果。 先暂时缓存到内存里面。 一、使用流程? 先安装对应搭建服务器的库 安装完成之后,我们依旧按照往常到webpack.config.js中去配置 再到package.json中去配置指令 然后我们执行指令 然后就运行到8080端口啦 现在我们就可以实时的进行修改测试 如果我们上传部署,

weixin_43916611的博客 412

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

draw2d部署与发布全流程:从本地开发到生产环境的完整指南

draw2d是一款强大的JavaScript库,能够帮助开发者创建类似Visio的绘图、图表和工作流程。本文将详细介绍如何从本地开发环境搭建到生产环境部署的完整流程,让你快速掌握draw2d的部署与发布技巧。 ## 一、环境准备:快速搭建开发环境 在开始使用draw2d进行开发之前,我们需要先搭建好必要的开发环境。这一步非常关键,它将直接影响后续开发的效率和质量。 ### 1.1 安装Nod

gitblog_00481的博客 690

【教程】Webpack搭建React开发环境详细步骤

1. 安装Node.js Webpack实际是用Node.js写的,所以要先安装Node.js环境。而且Node.js中集成了NPM包管理,我们在后面用到的很多模块都需要使用NPM下载。 首先进入Node.js的官网,选择对应系统下载安装包,对于 windows 用户,直接下载安装包安装即可,如果是 Macos 用户,推荐使用 brew 进行安装。Node.js有很多版本,包括稳定版和开发版,不同...

柯晓楠 1072

g9.js部署最佳实践:从开发到生产的完整流程指南

g9.js是一款专注于自动交互图形的JavaScript库,能够帮助开发者快速创建动态可视化效果。本文将详细介绍从开发环境搭建到生产部署的完整流程,让你轻松掌握g9.js项目的部署技巧。 ## 一、开发环境准备 ### 1.1 安装Node.js和npm g9.js项目依赖Node.js环境,建议安装LTS版本以确保兼容性。可从Node.js官网下载对应系统的安装包,安装完成后通过以下命令验证

gitblog_00307的博客 410

使用Webpack搭建React开发环境

1. 安装Node.js Webpack实际是用Node.js写的,所以要先安装Node.js环境。而且Node.js中集成了NPM包管理,我们在后面用到的很多模块都需要使用NPM下载。 首先进入Node.js的官网,选择对应系统下载安装包,对于 windows 用户,直接下载安装包安装即可,如果是 Macos 用户,推荐使用 brew 进行安装。Node.js有很多版本,包括稳定版和开...

柯晓楠 553

Node.js基础总结

js 属于一种脚本性语言,然而脚本语言运行需要一个解析器来解析,对于我们原来写的 js 代码大部分都是运行在网页上,所以浏览器本身就担当了解析器的角色。而现在对于独立运行在服务器的 js 代码,node 就属于那个解析器。 Node.js 是基于Chrome V8 引擎的JavaScript 运行环境,简单理解就是一个可以让JavaScript脱离浏览器,执行的平台,并对JavaScript功能进行了增强(文件系统,模块,包,操作系统API,网络通讯,数据库操作等)Node.js官网的描述:Node.js官

XBlithe的博客 1361

webpack安装入门

  这两天心血来潮,突然想研究下webpack,花了一天时间,看网上有很多教程,不过发现安装的都是比较老的版本。后来发现还是我太年轻了,找技术播客还不如找官方网站。下面是一个webpack的官方网站,里面详细讲解了最新版本webpack的用法 https://www.webpackjs.com/guides/   不过官网毕竟是官网,教的东西太多了,demo总是会引入一...

dazn33036的博客 148

webpack整理 搭建过程

webpack整理 搭建过程 webpack 是什么? 打包工具 (静态资源打包工具) 前端必备 webpack 的特点? js依赖进行整合处理 (打包整合) 一些预处理的sass,less可以在环境中进行编译 (转换) 可以对js、html、图片等进行压缩 (优化) 1安装node.js 在cmd 模式下 进行查看node版本 node -v 查看npm 版本 npm -v 2 切换国内 npm install nrm -g 全局安装 4. 查看nrm 列表 ,默认为npm n

weixin_48904399的博客 301

Web前端框架Vue+webpack搭建

Web前端框架Vue+webpack搭建 利用vue自己的脚手架工具vue-cli搭建起基本的环境配置,再通过npm包管理工具引入相应的依赖来完善项目的各种依赖框架。 基本步骤,参考URL 1. 在开发之前需要首先安装node.js,直接百度搜索或者在其中文官网也可以下载http://nodejs.cn/download/(默认全局安装node,npm,无需手动配置环境变量,即可...

xiongxiongup 2605

webpack初级入门教程(一)

1.前提条件 检测电脑是否安装node环境、npm、cnpm 检测: node:node -v npm: npm -v cnpm:cnpm -v 2.安装环境 2.1安装node环境:双击node安装包 2.2node环境安装完了以后再次检测node -v、npm -v 2.3安装cnpm(淘宝镜像)npm install -g cnpm --registry=https://registry.n...

vip.khan的博客 464

nodejs - npm安装webpack及应用

一、前言 前提:nodejs安装完成 版本问题: 在webpack 3中,webpack本身和它的CLI以前都是在同一个包中,但在第4版中,他们已经将两者分开来更好地管理它们。 webpack4启动命令时,会一直提示是否安装webpack-cli,并且功能还没有实现。 【解决方法】 二、PPT讲解 三、实战演练 【1】如何将js文件模块化 1-1】 1、在新建的文件夹中打开终端,输入 npm init![在这里插入图片描述](https://img-blog.csdnimg.cn/2020

weixin_45191282的博客 608
上一篇: Vue.js | Vue.js开发 初体验
下一篇: Vue | Vue.js 基础 模版语法
评论 9
成就一亿技术人!
拼手气红包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、付费专栏及课程。

余额充值