详解关于vue2.0工程发布上线操作步骤


Posted in Javascript onSeptember 27, 2018

找了不少资料如何发布到服务器,然而还是没找到合适的可实际操作的文档。很多文档打着上线发布的标题,其实就是本地运行而已。其实vue2.0工程发布相当简单。

文章重点:

  1. 讲解vue工程配置部分的意义
  2. 如何打包为生产环境中的前端工程
  3. 如何打包发布到云端以及nginx服务器配置

一、vue工程配置部分的意义

首先我们先看下vue2.0整体工程目录结构 (非重点省略)

- vueDemo   //你的vue工程名
  - build 
    - build.js
    - check-version.js 
    - utils.js
    - vue-loader.conf.js 
    - webpack.base.conf.js 
    - webpack.dev.conf.js //这个就是针对我们开发环境所对应的webpack配置打包文件了
    - webpack.prod.conf.js //这个针对我们生产环境所对应的webpack配置打包文件了
   - config
    - dev.env.js //定义Node 开发环境配置
    - index.js  //打包dist目录结构配置
    - prod.env.js //定义Node 生产环境 
   - node_modules 
   - src 
   - static 
   - ...
   - package.json

下面我将截取package.json文件中的部分代码作解释说明:

"scripts": {
  "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
  "start": "npm run dev",
  "build": "node build/build.js"
 },

相信看过官网的都知道了,我们启动我们的vue工程使用的都是npm run dev ,这里执行的本质,其实就是使用webpack打包,所使用的配置文件,就是我上面提到的bulid目录下的 webpack.dev.conf.js。也就是我们的开发环境的执行结果了。

二、如何打包为生产环境中的前端工程

看到这里你大概想那么我所需要的生产环境需要执行什么命令呢?

下面我将一一揭晓答案,其实答案就是我package.js 中的script脚本 build /bulid.js  执行命令 npm run build 

以下为 build.js的主要内容,都是vue工程自己生成的东西

'use strict'
require('./check-versions')()

process.env.NODE_ENV = 'production'

const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')

const spinner = ora('building for production...')
spinner.start()

rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
 if (err) throw err
 webpack(webpackConfig, (err, stats) => {
  spinner.stop()
  if (err) throw err
  process.stdout.write(stats.toString({
   colors: true,
   modules: false,
   children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
   chunks: false,
   chunkModules: false
  }) + '\n\n')

  if (stats.hasErrors()) {
   console.log(chalk.red(' Build failed with errors.\n'))
   process.exit(1)
  }

  console.log(chalk.cyan(' Build complete.\n'))
  console.log(chalk.yellow(
   ' Tip: built files are meant to be served over an HTTP server.\n' +
   ' Opening index.html over file:// won\'t work.\n'
  ))
 })
})

从上面我们可以看出他其实用的就是我刚刚所解释的 webpack.prod.conf.js文件。

三、打包发布到云端以及nginx服务器配置 

通过执行这个脚本文件我们可以得到我们所需要的dist打包文件,我这边使用的是部署在阿里云的nginx服务器,只需要配置下信息,重启nginx服务器就通过你的浏览器便可以访问了。

配置代码

server
{
    listen    80;
    server_name 网址名;
    root 你的dist文件目录下文件;
    index index.html ;

    if ($request_uri = '/index.php?route=account/reg/code') {
            return 404;
        }

    error_log logs/error.log;
    access_log logs/access.log;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 获取滚动条位置等信息的函数
Sep 08 Javascript
js自定义事件代码说明
Jan 31 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 Javascript
angular实现form验证实例代码
Jan 17 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
详解JavaScript中关于this指向的4种情况
Apr 18 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
Aug 06 Javascript
JS中比较两个Object数组是否相等方法实例
Nov 11 Javascript
Vue中用JSON实现刷新界面不影响倒计时
Oct 26 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 #Javascript
Vue中的v-for指令不起效果的解决方法
Sep 27 #Javascript
在vue中使用v-bind:class的选项卡方法
Sep 27 #Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 #Javascript
详解如何在vue项目中使用lodop打印插件
Sep 27 #Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 #Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 #Javascript
You might like
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
Python自定义线程类简单示例
2018/03/23 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
python包的导入方式总结
2021/03/02 Python
澳大利亚商务邀请函
2014/01/17 职场文书
打架检讨书2000字
2014/02/22 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
团日活动总结格式
2015/05/11 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL
python语言中pandas字符串分割str.split()函数
2022/08/05 Python