详解关于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 相关文章推荐
基于jQuery实现点击同时更改两个iframe的网址
Jul 01 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
Js+php实现异步拖拽上传文件
Jun 23 Javascript
Jquery数字上下滚动动态切换插件
Aug 08 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
微信小程序实现Swiper轮播图效果
Nov 22 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
二级域名转向类
2006/11/09 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
angular多语言配置详解
2019/05/16 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
python中list常用操作实例详解
2015/06/03 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python numpy 点数组去重的实例
2018/04/18 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
乡镇挂职心得体会
2014/09/04 职场文书
司考复习计划
2015/01/19 职场文书
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫