Centos Linux 系统部署java程序(五、前端项目的打包和部署)

我们采用基于avue前端框架改进的saber前端框架为例

目录结构如下

    dist[目录]    // 编译打包后的程序路径
    node_modules[目录] // node依赖包存放位置
    public[目录]   //  公共资源,一般是静态资源
    src[目录]      //   vue源码,所有的前端处理都在这里面   
    .browserslistrc[文件]  
    .editorconfig[文件]
    .eslintrcjs[文件]
    .gitignore[文件]
    postcssrc.js[文件]
    babel.config.js[文件]   //  babel 配置文件
    build.sh[文件]  
    LICENSE[文件] 
    package.json[文件]   // 包管理配置
    package-lock.json[文件]  
    README.md[文件]
    vue.config.js[文件]   //  vue 运行配置

打包

一般的打包命令如下:

vue-cli-service build

也可以根据实际情况增加配置参数,如

vue-cli-service build --mode=production

执行过程中,它会先删除dist目录所有内容,再重新构建dist目录的文件,因此需要确保dist目录没有被使用,否则会报错,无法完成打包

我们如果项目中,存在package.json,可以先看一下它的内容

{
  "name": "saber-admin",
  "version": "4.0.1",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "analyz": "npm_config_report=true npm run build",
    "test:unit": "vue-cli-service test:unit",
    "test:e2e": "vue-cli-service test:e2e"
  },
  "dependencies": {
    "avue-plugin-ueditor": "^0.1.4",
    "axios": "^0.18.0",
    "babel-polyfill": "^6.26.0",
    "classlist-polyfill": "^1.2.0",
    "crypto-js": "^4.0.0",
    "element-ui": "^2.15.6",
    "js-base64": "^2.5.1",
    "js-cookie": "^2.2.0",
    "js-md5": "^0.7.3",
    "mockjs": "^1.0.1-beta3",
    "node-gyp": "^5.0.6",
    "nprogress": "^0.2.0",
    "portfinder": "^1.0.23",
    "script-loader": "^0.7.2",
    "vue": "^2.6.10",
    "vue-axios": "^2.1.2",
    "vue-i18n": "^8.7.0",
    "vue-router": "^3.0.1",
    "vuex": "^3.1.1"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.1.1",
    "@vue/cli-plugin-eslint": "^3.1.5",
    "@vue/cli-service": "^3.1.4",
    "chai": "^4.1.2",
    "node-sass": "^6.0.1",
    "sass-loader": "^10.0.5",
    "vue-template-compiler": "^2.5.17",
    "webpack-bundle-analyzer": "^3.0.3"
  },
  "lint-staged": {
    "*.js": [
      "vue-cli-service lint",
      "git add"
    ],
    "*.vue": [
      "vue-cli-service lint",
      "git add"
    ]
  }
}

从上面代码中,找到scripts部分的内容,我们可以看到有 serve build 等几个命令,那么我们也可以按以下命令形式进行打包,执行build

npm run build

举一反三,当然也可以执行以下这些命令,只不过每个的作用都不同,大家可以自己试试看。

npm run serve npm run lint npm run analyz npm run test:unit npm run test:e2e

执行完build, dist目录内容更新成功,则完成了打包。打包出来的内容是静态页面和相关的静态资源js和图片、样式等。

部署

静态页面的部署比较简单

  1. nginx上启用一个目录,用于提供外部访问路径,将本地路径配置为静态资源文件夹所在的路径

location / {
        root /opt/web;
        index index.html index.htm;
    }

  1. 重启nginx

service nginx restart

到此就完成了静态资源的部署了。 可以通过nginx的访问路径来确认是否已经部署成功。部署成功后,就可以访问静态页面了。

大家可以看看我的示例页面 : http://lab.yeegee.com