当前位置: 首页 > news >正文

Webpack5 搭建Vue项目(进阶版)

Webpack5 搭建Vue项目(进阶版)

提示:中间隔了好长时间,我胡汉三又回来继续更新了!!!😂😂😂


文章目录

  • Webpack5 搭建Vue项目(进阶版)
  • 前言
  • 一、进阶版本有哪些特点?
  • 二、主要的文件代码如下
    • 1.设置一个公共配置 webpack.common文件
    • 2.设置一个【dev】config文件
    • 3.设置一个【prod】config文件
  • 三、配置 package.json文件
    • 1.代码如下
  • 总结如下(一定要看)


前言

提示:文章涉及的一些内容仅供参考:

大多数情况下,大家在项目开发的过程中,基本很少去说让开发人员去自助的搭建一个Vue项目。基本都是使用现成的一些模版项目,直接在上面进行一个二次的开发(当然这样也是最节省时间!!!!!)


一、进阶版本有哪些特点?

1. 首先进阶版本对【开发环境】和【线上环境】的配置进行了区分。
2. 本文的【示例】主要是代理服务器的一个体现(主要是有这样的思想,也方便后续想要对项目进行懒加载,分包等优化配置进行环境区分。便于管理项目)

这里就不做过多的赘述了,大家可以看下面的第二步骤

二、主要的文件代码如下

1.设置一个公共配置 webpack.common文件

代码如下(示例):

const path =require('path')
const HtmlWebpackPlugin =require('html-webpack-plugin')
const { VueLoaderPlugin } = require('vue-loader')
module.exports={entry:'./src/index.js',output:{path:path.resolve(__dirname,'dist'),filename:'[name].bundle.js',clean: true,},module:{rules:[{test: /\.css$/i,use: ["style-loader", "css-loader"],},{test: /\.m?js$/,exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}},{test: /\.vue$/,loader: 'vue-loader'}]},plugins:[new HtmlWebpackPlugin({template:'./public/index.html',title:'webpackTest',filename:'index.html'}),new VueLoaderPlugin()]}

2.设置一个【dev】config文件

代码如下(示例):

const {merge}=require('webpack-merge')
const common =require('./webpack.common.js')module.exports=merge(common,{mode:'development',devServer:{static: './public',open:true,}
})

该处使用的url网络请求的数据。


3.设置一个【prod】config文件

const {merge}=require('webpack-merge')const common =require('./webpack.common.js')module.exports=merge(common,{mode:'production'
})

三、配置 package.json文件

1.代码如下

    // dev 代表的就是开发环境"dev":"webpack serve --config ./webpack.dev.js",//build 代表的是线上环境"build":"webpack --config ./webpack.prod.js"

总结如下(一定要看)

根据上面的思路,我们可以确定。如果后续我们的项目体积太大,就可以在prod.js中去配置对应的 webpack plugin去满足我们的项目分包懒加载等打包的操作

1. 后续会去更新,如何在自己的项目中集成 eslint 和 prettier 工具去管理咱们项目的代码规范问题2. 集成到Git的生命周期中的代码提交监测和修复的功能

http://www.lryc.cn/news/162232.html

相关文章:

  • 论文阅读:Distortion-Free Wide-Angle Portraits on Camera Phones
  • 力扣每日一题---207. 课程表
  • 在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题
  • c语言练习44:深入理解strstr
  • 渗透测试漏洞原理之---【业务安全】
  • CentOS查看CPU、内存、网络流量和磁盘 I/O
  • 无人机航线规划
  • react中受控组件与非受控组件
  • 【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题
  • Python中的进度条显示方案
  • 2023-09-05力扣每日一题
  • ODC现已开源:与开发者共创企业级的数据库协同开发工具
  • 生成克隆钓鱼网站与对win7进行后渗透操作
  • Ubuntu18中NVIDIA,cuda,cudnn,pytorch安装
  • MATLAB中M文件编写
  • 企业数字化神经网络
  • C++this指针
  • 【初阶C语言】操作符1--对二进制的操作
  • 安装pyscipopt
  • 原生js实现的轮盘抽奖案例
  • 最经典的解析LSA数据库(第六课)
  • C++基础入门
  • 【每日随笔】驾驭人性 ② ( 员工立场问题 | 立场转变 | 吴越同舟 | 老板如何与员工结成利益共同体 )
  • C++(QT)画图行车
  • Unity中Shader抓取屏幕并实现扭曲效果(优化)
  • 肖sir__设计测试用例方法之_(白盒测试)
  • GoT:用大语言模型解决复杂的问题
  • nginx服务和uwsgi服务如何设置开机自启动
  • 算法-分治算法
  • react 实现监听逻辑