Vue项目的打包上线步骤

Posted Gik99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue项目的打包上线步骤相关的知识,希望对你有一定的参考价值。

Vue项目的打包上线步骤

一、打包之前的路由模式

两种路由模式

  • hash模式 : #后面是路由路径,特点是前端访问,#后面的变化不会经过服务器
  • history模式:正常的/访问模式,特点是后端访问,任意地址的变化都会访问服务器

改成history模式

  • src/router/index.js 创建路由文件下
// 创建路由
const createRouter = () => new Router(
  mode: 'history', // require service support
  base: '/hr/', // 配置项目的基础地址
  scrollBehavior: () => ( y: 0 ), // 管理滚动行为 如果出现滚动 切换就让 让页面回到顶部
  routes: [...constantRoutes] // 临时合并所有的路由
)
  • 此时路径地址改成

二、性能分析和CDN的应用

2.1 性能分析

  • 使用vue-cli本身提供的性能分析工具,对我们开发的所有功能进行打包分析
  • 1.安装依赖 npm run preview -- --report
  • 2.得到一个地址去访问
  • 方块越大,说明该文件占用的文件越大,文件越大,对于网络带宽和访问速度的要求就越高,这也就是我们优化的方向

2.2 webpack排除打包

  • 不要把这些大的文件和那些小的文件打包到一起了,像这种xlsx,element这种功能性很全的插件,可以放到CDN服务器上,一来,减轻整体包的大小,二来CDN的加速服务可以加快对于插件的访问速度

使用方式

  • 1.vue.config.js的configureWebpack选项
 // 排除 elementUI xlsx  和 vue 
  externals:
      
        'vue': 'Vue',
        'element-ui': 'ELEMENT',
        'xlsx': 'XLSX'
     

2.3 CDN文件配置

上边有几个大文件被排除打包了,需要采用采用CDN的方式,在页面模板中预先引入

  • vue.config.js
const cdn = 
  css: [
    // element-ui css
    'https://unpkg.com/element-ui/lib/theme-chalk/index.css' // 样式表
  ],
  js: [
    // vue must at first!
    'https://unpkg.com/vue@2.6.10/dist/vue.js', // vuejs
    // element-ui js
    'https://unpkg.com/element-ui/lib/index.js', // elementUI
      'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/jszip.min.js',
    'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/xlsx.full.min.js'
  ]

根据环境变量判断是开发环境 还是生产环境 开发环境下没有必要使用CDN 只在生产环境下生效

  • vue.config.js
et cdn =  css: [], js: [] 
// 通过环境变量 来区分是否使用cdn 
const isProd = process.env.NODE_ENV === 'production' // 判断是否是生产环境
let externals = 
if (isProd) 
  // 如果是生产环境 就排除打包 否则不排除
  externals = 
    // key(包名) / value(这个值 是 需要在CDN中获取js, 相当于 获取的js中 的该包的全局的对象的名字)
    'vue': 'Vue', // 后面的名字不能随便起 应该是 js中的全局对象名
    'element-ui': 'ELEMENT', // 都是js中全局定义的
    'xlsx': 'XLSX' // 都是js中全局定义的
  
  cdn = 
    css: [
      'https://unpkg.com/element-ui/lib/theme-chalk/index.css' // 提前引入elementUI样式
    ], // 放置css文件目录
    js: [
      'https://unpkg.com/vue@2.6.10/dist/vue.js', // vuejs
      'https://unpkg.com/element-ui/lib/index.js', // element
      'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/xlsx.full.min.js', // xlsx 相关
      'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/jszip.min.js' // xlsx 相关
    ] // 放置js文件目录
  


module.exports = 
	configureWebpack: 
    // provide the app's title in webpack's name field, so that
    // it can be accessed in index.html to inject the correct title.
    name: name,
    resolve: 
      alias: 
        '@': resolve('src')
      
    ,
    // 排除 elementUI xlsx  和 vue 包名(不去打包)
    externals: externals
  ,

2.4 注入CDN文件到模板

之后通过 html-webpack-plugin注入到 index.html之中

  • 找到vue.config.js里面的chainWebpack节点,添加如下代码
config.plugin('html').tap(args => 
  args[0].cdn = cdn
  return args
)
  • 找到 public/index.html。通过你配置的CDN Config 依次注入 css 和 js
<head>
  <!-- 引入样式 -->
  <% for(var css of htmlWebpackPlugin.options.cdn.css)  %>
    <link rel="stylesheet" href="<%=css%>">
  <%  %>
</head>

<!-- 引入JS -->
<% for(var js of htmlWebpackPlugin.options.cdn.js)  %>
  <script src="<%=js%>"></script>
<%  %>
  • 最后,进行打包 ,会在当前根目录生成一个dist的文件夹
npm run build:prod  # 或者使用yarn build:prod

Vue项目部署,打包发布上线

参考vuecli官方文档

一、构建打包

在发布上线之前,我们需要执行构建打包,将 .less、.vue、.js 等相关资源进行编译打包,转换成浏览器可以直接识别运行的普通 css、js、html。

# yarn run build 或者 yarn build
npm run build

在这里插入图片描述
VueCLI 会把打包结果生成存储到项目的 dist 目录中。

正确的话应该会得到这样一个打包结果:
在这里插入图片描述

二、本地预览测试打包结果

注意:不能直接双击打开 index.html 运行。

将 dist 放到一个 Web 服务器中运行测试,常见的 Web 服务器:

Ngxin
Apache
tomcat
IIS
。。。。
Node.js

前端安装配置上面的服务器软件麻烦,这里推荐使用 Vue 官方推荐的一个命令行 http 服务工具:serve

dist 目录需要启动一个 HTTP 服务器来访问 (除非你已经将 publicPath 配置为了一个相对的值),所以以 file:// 协议直接打开 dist/index.html 是不会工作的。在本地预览生产环境构建最简单的方式就是使用一个 Node.js 静态文件服务器,例如 serve:

安装:

# yarn global add serve
# 注意:这是在安装全局包,在任何目录执行都可以
# 安装一次就可以了,以后不需要重复安装,顶多升级重装
npm install -g serve

在这里插入图片描述

然后在你的项目目录下执行:

# dist 是运行 Web 服务根目录
serve -s dist

如果启动成功,你将看到如下提示:
在这里插入图片描述

在这里插入图片描述

serve 默认占用 5000 端口并启动一个服务

然后在浏览器中访问给出的地址访问测试。

你自己先大概的测试一下,确保打包结果可以正常运行,然后交由专业的测试人员进行测试。

如果测试出问题怎么办?

修改 src 源代码
重新构建打包

注意:

不要去修改 dist 中的文件代码,没有用。

因为每次 npm run build 都会先把原来的 dist 删除,然后生成新的结果。

三、部署

公司有专门的 devops,说白了就是运维
有些公司没有专门的运维人员,那就后端负责

你只需要把打包结果给人家就可以了

如果想要自己部署,怎么办?

买一个服务器
安装服务器运行环境
阿里云、腾讯云、…

买个域名(非必须)
第一次买非常便宜,几十块钱,续费非常贵

把项目代码推送到你的部署服务端

四、21云盒子

21云盒子技术文档

在这里插入图片描述

以上是关于Vue项目的打包上线步骤的主要内容,如果未能解决你的问题,请参考以下文章

Vue项目的打包上线步骤

vue项目打包上线的步骤

vue.js学习笔记:如何加载本地json文件

Vue技术文章汇总

vue.js项目构建基础

vue — 创建vue项目