详解关于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 相关文章推荐
又一个图片自动缩小的JS代码
Mar 10 Javascript
FireFox与IE 下js兼容触发click事件的代码
Nov 20 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
Feb 18 Javascript
JQuery动画和停止动画实例代码
Mar 01 Javascript
javaScript中slice函数用法实例分析
Jun 08 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
AngularJS控制器之间的数据共享及通信详解
Aug 01 Javascript
微信js-sdk界面操作接口用法示例
Oct 12 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
js运算符的一些特殊用法
Jul 29 Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
Apr 25 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中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
Python如何实现转换URL详解
2019/07/02 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
学校后勤人员职责
2013/12/27 职场文书
趣味体育活动方案
2014/02/08 职场文书
小学教师评语大全
2014/04/23 职场文书
保安公司服务承诺书
2014/05/28 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
单独二胎证明
2015/06/24 职场文书
家长会感言
2015/08/01 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript