Webpack搭建本地服务器

8 篇文章 0 订阅
订阅专栏

1 开启本地服务器

2 HMR热模块替换

3 devServer配置

4 开发和生成环境

需要本地服务的目的就在每次我们保存项目源文件的时候都可以自动打包新的打包文件,

这里主要讲webpack-dev-server:

先安装:

npm install webpack-dev-server -D
需要在项目根目录下创建webpack配置文件。您可以命名它为webpack.config.js,并将以下内容添加到它:
module.exports = {
  entry: './src/index.js', // 您的入口文件
  output: {
    filename: 'bundle.js' // 打包后的文件名
  },
  devServer: {
    contentBase: './dist' // 服务器的根目录
  }
};

在项目的package.js文件里面编写script内容,添加命令为serve:

打开项目在本地服务器,在项目根目录打开命令提示符,输入npm run server。后续代码发生改变就可以让服务器自动在内存里面保存打包好的内容并刷新浏览器。

这些就是学到vue时候的服务器。

模块热更新:出现的原因是在没开启模块热更新的时候,我们修改某个js文件的代码的时候,本地服务器会刷新项目的所有在浏览器显示的文件,很费性能,所以我们想要实现只在被修改内容的模块文件更新,其他文件不用更新

打开的方法是,在webpack的配置文件里面添加devServer内容(默认是有true的,所以写不写都一样):

然后在入口文件src/index.js 项目的主要js里面编写:(下面这个内容可有可无,因为现在的框架vue、react等都已经有这样子的设置了,就不需要自己写了。)

 

devserver的配置:(不是很常用,除了用vue的时候,可能会需要改端口。)

可以改端口,可以改ip,可以设置压缩文件等等

 

区分生产环境和开发环境的配置文件:

先在项目根目录创建config文件夹,里面放了个配置文件:

 

 

 

 在package.js文件里面修改script命令的build和server的命令:

 

之后需要使用merge包来合并共同的配置:

npm install webpack-merge -D

公共配置,就是生产环境和开发环境都需要用到的配置webpack.comm.config.js:(内容只是上课用到的,不是真的我们在开发时候需要用到的)

const path = require("path")
const { VueLoaderPlugin } = require("vue-loader/dist/index")
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { DefinePlugin } = require("webpack")

module.exports = {
  entry: "./src/main.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, "../build")
  },
  resolve: {
    extensions: [".js", ".json", ".vue", ".jsx", ".ts", ".tsx"],
    alias: {
      utils: path.resolve(__dirname, "../src/utils")
    }
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [ "style-loader", "css-loader", "postcss-loader" ]
      },
      {
        test: /\.less$/,
        use: [ "style-loader", "css-loader", "less-loader", "postcss-loader" ]
      },
      {
        test: /\.(png|jpe?g|svg|gif)$/,
        type: "asset",
        parser: {
          dataUrlCondition: {
            maxSize: 60 * 1024
          }
        },
        generator: {
          filename: "img/[name]_[hash:8][ext]"
        }
      },
      {
        test: /\.js$/,
        use: [
          { 
            loader: "babel-loader"
          }
        ]
      },
      {
        test: /\.vue$/,
        loader: "vue-loader"
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin(),
    new HtmlWebpackPlugin({
      title: "电商项目",
      template: "./index.html"
    }),
    new DefinePlugin({
      BASE_URL: "'./'",
      coderwhy: "'why'",
      counter: "123"
    })
  ]
}

生产环境的配置webpack.prod.config.js:

const { CleanWebpackPlugin } = require("clean-webpack-plugin")
const { merge } = require("webpack-merge")
const commonConfig = require("./webpack.comm.config")

module.exports = merge(commonConfig, {
  mode: "production",
  output: {
    clean: true
  },
  plugins: [
    new CleanWebpackPlugin()
  ]
})

开发环境用到的配置webpack.dev.config.js:

const { merge } = require("webpack-merge")
const commonConfig = require("./webpack.comm.config")

module.exports = merge(commonConfig, {
  mode: "development",
  devServer: {
    hot: true,
    // host: "0.0.0.0",
    // port: 8888,
    // open: true
    // compress: true
  }
})

1

 

 

 

 

 

 

 

 

WebpackWebpack-dev-server安装和配置
princess66的博客
11-01 1409
WebpackWebpack-dev-server安装和配置
(掌握)webpack启本地服务器
最新发布
小余的前端博客
04-26 438
【代码】(掌握)webpack启本地服务器
webpack快速入门-服务器(webpack-dev-server)
温情
09-05 506
发阶段,遇到的问题是打包、运行、调试过程过于繁琐,回顾一下我们的操作流程:编写代码控制台运行命令完成打包打页面查看效果并且,我们往往希望把最终生成的代码和页面部署到服务器上,来模拟真实环境为了解决这些问题,webpack它既不是plugin也不是loader接下来看看它怎么用。
Webpack配置详解——这一篇就够用了(1),字节面试官态度不好
2401_84140547的博客
04-18 311
less文件webpack不能解析,需要借助loader编译解析。
webpack----服务器
weixin_45228198的博客
04-22 371
webpack的基本使用
Tomcat搭建本地服务器的图文教程
01-11
相信很多人都使用webpack搭建过小型服务器,那么如果没有webpack配置和依赖管理时,如何启动项目呢?办法有很多,诸如PHPnow,WampServer都可以,本文重点介绍如何使用Tomcat搭建本地服务器。 什么是Tomcat? Tomcat...
webpack_tutorial:webpack教程
02-06
来源: ,使用和此教程一致的范例每一步一个提交,可以看git历史来学习和本地验证测试内容:从无到有建立一个webpack项目安装webpack及相关的各个npm模块和工具使用webpack-dev-server作为调试服务器最简单的webpack...
详解使用vue脚手架工具搭建vue-webpack项目
08-30
详解使用 Vue 脚手架工具搭建 Vue-Webpack 项目 知识点 1: Vue.js基础知识 在始使用 Vue.js 前,我们需要了解 Vue.js 的基本概念。Vue.js 是一个渐进式的 JavaScript 框架,用于构建用户界面。其核心思想是将...
使用vue-cli脚手架工具搭建vue-webpack项目
10-17
首先,搭建VueWebpack项目的第一步是确保你已经安装了Node.js环境。Node.js是JavaScript的服务器端运行环境,包含了npm(Node Package Manager),它是用来管理JavaScript库和项目的工具。你可以访问Node.js官方网站...
服务器搭建-上线.pdf
04-20
在本地导出数据库,然后在云服务器上解压并导入。确保数据库名称、导入路径等参数与实际相符,导入完成后,项目便具备了完整的数据支持。 综上所述,通过Vue.js、Node.js和MongoDB的组合,我们可以构建出强大的Web...
webpack】2、webpack插件使用
m0_46661713的博客
09-03 365
在使用了webpack-dev-server后运行项目会启动一个http服务,端口是8080.但是进入服务后显示的是项目的目录结构,这不是我想看到的,此时可以使用html-webpack-plugin插件让服务的默认界面为html界面。使用webpack-dev-server打包时会启动一个http服务器,默认端口是8080。该插件的作用类似于热更新,在不手动打包的情况下可以自动监控代码的改变。所以在html界面中使用的js文件应该是内存中的main.js。
《深入浅出webpack》学习4——1.6:webpack-dev-server启动本地服务器
一个昵称叫铃风的小前端
07-10 2000
1.安装webpack-dev-server 它配合node,帮我们启本地服务器 2.书中说安装后执行webpack-dev-server即可 但实际会报错: 百度,尝试了webpack-dev-server --line、webpack-dev-server --content-base ./等命令,还是同样的错误 最后成功的方法:配置package.json 配置webpack.con...
前端快速搭建本地服务器的几种方法
热门推荐
lixiaoyan93的博客
06-21 1万+
背景:在前端项目搭建本地服务器可以实现多个设备(手机和电脑)运行同一个地址就可以看到效果前提是在局域网内,以前用的Apache搭建本地服务器来运行前端静态项目,现在可以同过node直接搭建或者是直接使用vscode的插件 live serve,可以启动本地服务器。 方法一 1.安装node 2.安装好了,我们打cmd,输入命令行1:node -v, 这里是查询node版本,出现版本号说明安...
webpack4.0基础配置以及(webpack-dev-server)的使用
yezi__6的博客
05-11 5544
今天又启了我webpack4.0的学习旅途。上次学习webpack中途问题实在是解决不了,就搁置好久没看了。可是怎么能不看呢,毕竟自己准备进军前端一线了。哈哈~~~ 说下webpack都可以干什么吧? 代码转换,文件优化,代码分割,模块合并,自动刷新,代码校验,自动发布等特点 好了不说啦始基本配置吧 在始配置之前,先新建一个文件夹webpc,在根目录下写src(js, css,....
从零始学VUE之Webpack(搭建本地服务器并分离发和生产配置)
彼岸舞的博客
06-07 554
webpack提供了一个可选的本地服务器,这个本地服务器是基于Nodejs搭建的,内部使用express框架,可以实现我们想要的让浏览器自动刷新显示我们修改代码后的结果 不过他是一个单独的模块,在webpack中使用需要安装 npm install --save-dev webpack-dev-server@2.9.3 devserver也是作为webpack中的...
琪露诺学习Vue.js的第七天
wmw119的博客
09-26 163
webpack webpack前端的一个项目构建工具,它是基于 Node.js 发出来的一个前端工具; webpack安装的两种方式 运行npm i webpack -g全局安装webpack,这样就能在全局使用webpack的命令 在项目根目录中运行npm i webpack --save-dev安装到项目依赖中 webpack的使用--初步使用webpack打包构建列表隔行变色案例...
<textarea>标签怎样禁止拉动
鹰潭SEO
08-26 1820
HTML 标签 textarea 在大部分浏览器中只要指定行(rows)和列(cols)属性,就可以规定 textarea 的尺寸,大小就不会改变,不过更好的办法是使用 CSS 的 height 和 width 属性,但是Chrome,Safari和FireFox渲染的效果不同,可以拖动右下角图标改变大小。但是过分拖动大小会影响页面布局,使页面变得不美观。可以通过添加如下两个样式:1.禁用拖动2固
webpack-dev-server工具的安装和使用出现的错误解决
qq_45192089的博客
04-04 2526
(1)首先,安装 npm install webpack-dev-server -D //(添加到依赖中) (2) 在package.json文件中添加一条语句:因为是本地安装,所以不能直接把webpack-dev-server当做命令使用 (3)在终端输入:npm run dev,出现错误如下 如何解决的:webpack-cli版本太高,卸载,重新安装一个低版本的 (4)再次运行:npm run dev,出现错误如下: 解决方案: (4)再次运行:npm run dev,终于ok了:
webpack搭建vue脚手架
04-02
1. 安装webpack和vue-cli 首先需要在本地安装webpack和vue-cli,可以通过以下命令进行安装: ``` npm install webpack -g npm install vue-cli -g ``` 2. 创建项目 使用vue-cli可以快速创建一个vue项目,执行以下命令: ``` vue init webpack my-project ``` 其中my-project是项目名,可以自定义。执行命令后会提示输入一些选项,比如项目描述、作者等信息。最后会自动生成一个项目目录。 3. 安装依赖 在项目目录下执行以下命令安装依赖: ``` cd my-project npm install ``` 4. 配置webpack项目目录中找到webpack.config.js文件,这个文件是webpack的配置文件,可以在其中进行配置。一般情况下,我们需要配置入口文件、输出文件、加载器和插件等。以下是一个示例配置: ``` const path = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') module.exports = { entry: './src/main.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' }, module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' }, { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ }, { test: /\.(png|jpg|gif|svg)$/, loader: 'file-loader', options: { name: '[name].[ext]?[hash]' } } ] }, plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true }) ], resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' } }, devServer: { historyApiFallback: true, noInfo: true, overlay: true }, performance: { hints: false }, devtool: '#eval-source-map' } ``` 5. 编写组件 在src目录下新建一个App.vue文件,用于编写组件: ``` <template> <div> <h1>{{ message }}</h1> </div> </template> <script> export default { data () { return { message: 'Hello Vue!' } } } </script> ``` 6. 编写入口文件 在src目录下新建一个main.js文件,用于编写入口文件: ``` import Vue from 'vue' import App from './App.vue' new Vue({ el: '#app', render: h => h(App) }) ``` 7. 运行项目 在命令行中执行以下命令启动服务器: ``` npm run dev ``` 然后在浏览器中访问http://localhost:8080,可以看到页面上显示了“Hello Vue!”。至此,一个基本的vue项目已经成功搭建完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • nvue基础快速入门 9068
  • 小程序系统API调用 3045
  • vue全家桶 --- pinia状态管理 2815
  • Node服务器-express框架 2792
  • MySQL数据库 – node使用 2221

分类专栏

  • vue2、vue3的学习笔记 5篇
  • javascript高级 17篇
  • Node服务高级开发 5篇
  • 前端工程化基础 8篇
  • uni-app学习 2篇
  • 小程序开发实战 5篇
  • 前端数据可视化 6篇
  • react学习 12篇

最新评论

  • 关于uniapp上使用websocket在H5能用,在真机不能用的问题

    qq_41635262: // 创建websocket连接 createSocket() { if (this.isCreate) { // 监听 WebSocket 连接打开事件 try { this.socketExamples.onOpen(() => { console.log('WebSocket 连接成功') this.isConnect = true clearInterval(this.heartbeatTimer) clearTimeout(this.reconnectTimer) // 打开心跳检测 this.heartbeatCheck() }) // 监听 WebSocket 接受到服务器的消息事件 this.socketExamples.onMessage((res) => { // console.log('收到消息') uni.$emit('WS', res) }) // 监听 WebSocket 连接关闭事件 this.socketExamples.onClose(() => { console.log('WebSocket 关闭了') this.isConnect = false this.reconnect() }) // 监听 WebSocket 错误事件 this.socketExamples.onError((res) => { console.log('WebSocket 出错了') console.log(res) this.isInitiative = false }) } catch (error) { console.warn(error) } } else { 走到这里了 console.warn('WebSocket 初始化失败!') } }

  • 关于uniapp上使用websocket在H5能用,在真机不能用的问题

    qq_41635262: 我是本地调试H5正常,可是真机调试就不行了,说是初始化失败 initSocket() { const _this = this this.socketExamples = uni.connectSocket({ url: _this.url, header: { 'content-type': 'application/json' }, success: (res) => { console.error(res, '这里能成功') _this.isCreate = true }, fail: (rej) => { console.error(rej, 'fail') _this.isCreate = false } }) this.createSocket() } // 创建websocket连接 createSocket() { if (this.isCreate) { // 监听 WebSocket 连接打开事件 try { this.socketExamples.onOpen(() => { console.log('WebSocket 连接成功') this.isConnect = true clearInterval(this.heartbeatTimer) clearTimeout(this.reconnectTimer) // 打开心跳检测 this.heartbeatCheck() }) // 监听 WebSocket 接受到服务器的消息事件 this.socketExamples.onMessage((res) => { // console.log('收到消息') uni.$emit('WS', res) }) // 监听 WebSocket 连接关闭事件 this.socketExamples.onClose(() => { console.log('WebSocket 关闭了') this.isConnect = false this.reconnect()

  • 关于uniapp上使用websocket在H5能用,在真机不能用的问题

    CSDN-Ada助手: 推荐 小程序 技能树:https://edu.csdn.net/skill/mini_programs?utm_source=AI_act_mini_programs

  • Vue3 – 实现过渡动画

    CSDN-Ada助手: 恭喜你,获得了 2023 博客之星评选的入围资格,请看这个帖子 (https://bbs.csdn.net/topics/616690233?utm_source=blogger_star_comment)。 请在这里提供反馈: https://blogdev.blog.csdn.net/article/details/129986459?utm_source=blogger_star_comment。

  • 大屏适配方案

    木公176: 链接:https://pan.baidu.com/s/1rWMVkTt46OkmbAjoUsjGbA?pwd=erbk 提取码:erbk

大家在看

  • 可能是全网最适合入门的面向对象编程教程:Python实现-嵌入式爱好者必看!
  • 数据结构基础知识入门 2240
  • 自然语言处理—机器翻译(Machine Translation) 29

最新文章

  • 关于uniapp上使用websocket在H5能用,在真机不能用的问题
  • Vue3 – 实现过渡动画
  • Vue3 – 高级语法补充
2024年1篇
2023年57篇
2022年17篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司同乐网站优化按天收费深圳网站制作设计松岗seo优化罗湖网站推广系统南澳百度竞价南澳网站优化排名南澳网站推广永湖SEO按天收费深圳建设网站龙华百度标王坑梓网站优化按天计费民治网站设计南澳网站制作坪山企业网站改版大浪网站建设设计福永英文网站建设福田百度爱采购同乐百度竞价包年推广福田企业网站建设大运网站推广系统龙华关键词排名包年推广同乐百搜标王福田英文网站建设坪山网站制作设计南山网站排名优化罗湖建网站松岗网站优化按天扣费永湖英文网站建设大鹏百姓网标王爱联网站优化按天计费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化