vue项目上线打包优化和部署

news/2024/7/10 3:01:38 标签: vue, 中间件

项目的优化和部署,项目开发阶段和上线以后有些地方可能不一样,接口可能会发生改变,还有上线以后不需要的文件,等一些问题存在,所以解决办法是,把入口文件分开,一个用于开发环境打包,一个用于上线以后打包

具体步骤,分为以下几点:

1.在src目录下创建 prod_env.js和dev_env.js

在这里插入图片描述
然后将main.js中的内容复制到这两个文件中,就可以删除main.js文件了

vueconfigjs_9">2.在根目录下新建vue.config.js文件

编写如下代码


module.exports={
    chainWebpack:config=>{
        config.when(process.env.NODE_ENV === 'production',config=>{
            config.entry('app').clear().add('./src/prod_env.js')
        })
        config.when(process.env.NODE_ENV === 'development',config=>{
            config.entry('app').clear().add('./src/dev_env.js')
        })
    }
}

上面代码的目的是当用户输入 npm run build 命令时,打包文件会将prod_env.js作为入口文件,用做上线打包,反之,当用户输入 npm run serve 命令时,打包文件会将dev_env.js作为入口文件,用做开发环境打包

3.引入CDN节点

在我们文件里已经通过import引入了很多包。体积会较大,我们打包的时候,
加载速度就会变慢,所以,在上线打包的时候,我们可以使用cdn节点的方式引入我们需要的包,这样,在打包的时候,就不用加载本地的包了,而是去外网请求

没删之前引入的包:在这里插入图片描述
删除之后的包
在这里插入图片描述
删掉以后。替换成cdn节点的方式引入
在这里引入
在这里插入图片描述

 <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/quill@1.3.7/dist/quill.core.css" />
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/quill@1.3.7/dist/quill.snow.css" />
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/quill@1.3.7/dist/quill.bubble.css" />
    <link rel="stylesheet" type="text/css"
      href="https://cdn.jsdelivr.net/npm/element-ui@2.13.1/lib/theme-chalk/index.css">
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/quill@1.3.7/dist/quill.min.js"></script>
    <script type="text/javascript"
      src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.6/dist/vue-quill-editor.min.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <!-- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></scripFt> -->
    <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>
    <script src="https://cdn.bootcss.com/echarts/4.7.0/echarts.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.1/lib/index.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/moment@2.24.0/moment.min.js"></script>

然后修改vue.config.js文件
写如下配置:
在这里插入图片描述
然后重新输入 npm run bulid 进行打包
如果报错了,不要慌,在进行打包一次,可能需要两次才能成功
引入CDN节点会引发一些问题
刚才引入的CDN节点和项目开发阶段import引入的插件会起冲突,
所以还需要在vue.config.js加入如下代码:
在这里插入图片描述

一定返回args
然后在index.js加上判断,只有在上线打包时,才会用CDN节点,在开发环境中打包还是使用import引入的插件
在这里插入图片描述
当然,使用CDN节点打包之后,速度会变快,但是,打包文件还是过大,所以,我们继续使用vue提供的懒加载方式进行优化

4.懒加载优化

路由懒加载的方式将打包文件拆分成更小的资源,会把打包文件分成一个个的模块,还可以把几个文件打包在一个模块中,在需要用的时候,会更快的加载出来,大大提升了运行速度。
第一步:先安装插件

npm install --save-dev @babel/plugin-syntax-dynamic-import

第二步 修改配置文件

在babel的配置文件中加入
在这里插入图片描述

第三步 需要将router里面index.js修改如图下的路由
在这里插入图片描述
重新加载之后,会发现都变小了,分成好多小模块
在这里插入图片描述

5.对于 node.js 来说,可以使用 compression 中间件在服务器中进行文件压缩

首先安装compression

npm install compression

将打包好的dist复制到node项目下
然后编写app.js

const express = require('express')
const app = express()
 
app.use(express.static('./dist'))
app.listen(8080, () => {
    console.log('Server is running at http://127.0.0.1:8080')
})

启动node项目

pm2 start .\app.js

这时,再看网络请求就会发现小了,很多,速度几秒

以上大概是项目打包上线的优化和部署,压缩,一切都是为了更小更快。


http://www.niftyadmin.cn/n/874791.html

相关文章

怎样训练左右手协调_左右手单独弹都没问题,一起弹就非常不协调,如何练习?...

Q钢琴初学者&#xff0c;左右手单独弹都没问题&#xff0c;一起弹就非常不协调&#xff0c;如何练习左右手配合&#xff1f;左右手的协调问题是初学者的第一个大关。究其原因不是手的问题&#xff0c;其实是节奏的问题。这个不仅仅是靠练的&#xff0c;而是靠思维。你需要对每个…

解决 Win10 安装 MongoDB 无法启动服务的问题

关于MongoDB数据库 首先下载 https://www.mongodb.com/download-center/community 点击进行安装 进行下一步勾选 下图有两个选项 complete是默认选项&#xff0c;只能选择数据文件路径和日志文件路径&#xff0c;但不能选择安装 路径&#xff08;默认再C\programs目录下&…

python迷宫小游戏代码_快速实现一个简单的canvas迷宫游戏

前言 &#xff08;最近设计模式看的有点头大&#xff0c;一直面对纯js实在是有些枯燥-_-。所以写一点有趣的东西调剂一下&#xff09; 现在canvas已经不算新鲜了&#xff0c;不过由于日常业务中并不常用&#xff0c;所以实践并不多&#xff0c;今天分享一下&#xff0c;如何实现…

right 微信小程序_微信小程序版豆瓣电影

最近&#xff0c;工作没有那么忙&#xff0c;终于有时间学习微信小程序的开发了。学习的过程还是比较顺利的&#xff0c;入门相对简单&#xff0c;即便没有多少前端开发经验的人也能很快上手。现在微信小程序的资料还比较少&#xff0c;查看官方文档是很好的方式。微信小程序的…

python读取jpg文件_python打开远程网页上的图片,获取图片大小和尺寸

python中处理图片可以使用PIL库&#xff0c;PIL全称Python Imaging Library&#xff0c;就是python图形处理库的意思。在PIL中&#xff0c;可以使用Image.open来打开一个图片文件&#xff0c;但是笔者试了下&#xff0c;不能打开url地址的图片。如果要先把图片下载下来&#xf…

前端框架及项目面试 vue使用

1.vue的基本使用 模板&#xff08;指令、插值&#xff09; 指令、动态属性 v-html&#xff1a;会有XSS风险&#xff0c;会覆盖子组件 computed&#xff1a;有缓存&#xff0c;data不变&#xff0c;则不会重新计算 watch如何深度监听&#xff1f; watch监听引用类型&#xff0c…

数据库的数据传入页面_大数据从哪里来?

现代商业市场是一个数据驱动的环境&#xff0c;可以说不论技术怎么更新换代&#xff0c;数据都有着不可替代的地位&#xff0c;而且抛开数据谈大数据就是瞎扯&#xff0c;没有数据作支撑的大数据平台就是一个空壳。无论是公司内部的数据还是外部的数据都可以构成我们大数据平台…

前端框架及项目面试 Vue原理

1.Vue原理&#xff08;大厂必考&#xff09; 首先 原理 ! 源码 1.1 组件化 数据驱动视图&#xff08;MVVM,setState&#xff09;:传统组件&#xff0c;知识静态渲染&#xff0c;更新还要依赖于操作DOM 数据驱动视图-Vue MVVM 通过修改数据&#xff0c;驱动视图 数据驱动视图…