vue项目打包部署到Nginx服务器
vue项目开发好之后需要部署到服务器上进行外网访问,本篇主要介绍vue项目开发环境部署到Nginx服务器外网进行访问部署流程:本地vue项目进行打包成静态文件,将静态文件放在Nginx服务上,配置Nginx,指定的url转发至index.html,通过Nginx反向代理代替vue.cfg.js中配置的代理1.vue配置文件vue.cfg.jsconst path = require('path')
·
vue项目开发好之后需要部署到服务器上进行外网访问,本篇主要介绍vue项目开发环境部署到Nginx服务器外网进行访问
部署流程:本地vue项目进行打包成静态文件,将静态文件放在Nginx服务上,配置Nginx,指定的url转发至index.html,通过Nginx反向代理代替vue.cfg.js中配置的代理
1.vue配置文件vue.cfg.js
const path = require('path')
module.exports = {
/** 区分打包环境与开发环境
* process.env.NODE_ENV==='production' (生产环境)
* process.env.NODE_ENV==='development' (开发环境)
* baseUrl: process.env.NODE_ENV==='production'?"https://cdn.didabisai.com/front/":'front/',
*/
publicPath : "./", // 构建好的文件输出到哪里
outputDir: "dist", // where to put static assets (js/css/img/font/...) // 是否在保存时使用‘eslint-loader’进行检查 // 有效值: true | false | 'error' // 当设置为‘error’时,检查出的错误会触发编译失败
lintOnSave: true, // 使用带有浏览器内编译器的完整构建版本 // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
runtimeCompiler: false, // babel-loader默认会跳过`node_modules`依赖. // 通过这个选项可以显示转译一个依赖
transpileDependencies: [
/* string or regex */
], // 是否为生产环境构建生成sourceMap?
productionSourceMap: false, // 调整内部的webpack配置. // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
chainWebpack: () => {},
configureWebpack: () => {}, // CSS 相关选项
css: {
// 将组件内部的css提取到一个单独的css文件(只用在生产环境)
// 也可以是传递给 extract-text-webpack-plugin 的选项对象
extract: true, // 允许生成 CSS source maps?
sourceMap: false, // pass custom options to pre-processor loaders. e.g. to pass options to // sass-loader, use { sass: { ... } }
loaderOptions: {}, // Enable CSS modules for all css / pre-processor files. // This option does not affect *.vue files.
modules: false
}, // use thread-loader for babel & TS in production build // enabled by default if the machine has more than 1 cores
parallel: require("os").cpus().length > 1, // PWA 插件相关配置 // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
pwa: {}, // configure webpack-dev-server behavior
devServer: {
open: process.platform === "darwin",
disableHostCheck: false,
host: "0.0.0.0",
port: 8088,
https: false,
hotOnly: false, // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#configuring-proxy https://1w889d7618.iok.la:25826/cv
proxy: {
'/api': { // search为转发路径
target: 'http://localhost:8080/default', // 目标地址
ws: true, // 是否代理websockets
changeOrigin: true // 设置同源 默认false,是否需要改变原始主机头为目标URL,
}
},// string | Object
before: app => {}
}, // 第三方插件配置
pluginOptions: {
// ...
}
};
#执行打包命令
##根据vue配置文件会在本地根目录生成一个dist文件,该文件为vue打包好之后静态文件
npm run build
2.使用xshell连接上Linux服务器
##安装Nginx,建议直接通过yum安装,通过解压安装文件配置较为复杂
sudo yum install -y nginx
##启动Nginx
sudo systemctl start nginx.service
##开机自启动
sudo systemctl enable nginx.service
##开放80端口
firewall-cmd --permanent --zone=public --add-port=80/tcp
##重启防火墙
firewall-cmd --reload
3.通过xftp将打包好的静态文件放到服务器上面去,注意,放上去的文件若非root用户,需要赋予当前用户文件访问权限,否则nginx访问时会出现403无访问权限
##编辑nginx配置文件
vi /etc/nginx/nginx.conf
#进入nginx配置文件
location /system-admin-web {
root /home/web/;#3.dist文件的位置(我是直接放在/home/web/目录下了).注意之前dist文件必须要重命名为system-admin-web,否则服务
try_files $uri $uri/ /index.html; #4.重定向,内部文件index.html文件
}
location /api { #配置请求转发
proxy_pass http://10.166.0.109:9001/api;
}
直接访问http://localhost/system-admin-web/
更多推荐
已为社区贡献2条内容
所有评论(0)