vue-cli项目打包 并且用Nginx部署

vue-cli项目打包 并且用Nginx部署

build前修改配置

build --> utils.js

// Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        publicPath:‘../../‘, //加上段代码,防止打包后丢失图片路径
        fallback: ‘vue-style-loader‘
      })
    } else {
      return [‘vue-style-loader‘].concat(loaders)
    }
  }

config --> index.js

build: {
    //...

    // Paths
    assetsRoot: path.resolve(__dirname, ‘../dist‘),
    assetsSubDirectory: ‘static‘,
    assetsPublicPath: ‘./‘,  //修改后路径

    //...
   }

src --> main.js :如果使用了Element-UI等其他引入的组件

import Vue from ‘vue‘
import App from ‘./App‘
import ElementUI from ‘element-ui‘
import ‘element-ui/lib/theme-chalk/index.css‘
import router from ‘./router‘  //router要最后import,否则element样式可能会错乱
Vue.config.productionTip = false
Vue.use(ElementUI)

new Vue({
  el: ‘#app‘,
  router,
  components: { App },
  template: ‘<App/>‘
})

打包

根目录下在终端执行:

npm run build

项目根目录下生成dist文件夹,这是打包好的项目,将它传到你要部署的服务器,放在哪里都可以,我就放在C:\下。

有关vue-cli项目中 config --> index.js 文件配置的更多内容,参考这篇博客:

https://blog.csdn.net/hanghangaidoudou/article/details/80839713?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

Nginx下载

http://nginx.org/en/download.html 官方下载链接

将这个压缩文件在服务器中解压,解压后放哪里都可以。

Nginx配置

conf --> nginx.conf 初始配置如下:

http {
    #...

    server {
        listen       80;
        server_name  localhost;

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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    #...
}

一般来说只需改动server里的内容:

http {
    #...

    server {

        #端口,可改动,但是此前要先查看想改动的端口是否被占用
        #想要被其他用户访问的话记得设置服务器的安全组
        listen       80;

        server_name  localhost;

        location / {

            #改动2-2:
            try_files $uri $uri/ @router;

            #改动1:这里改成打包好的dist文件夹的绝对路径
            root   C:\dist; 

            index  index.html index.htm;
        }

        #改动2-1:路由重写,防止history模式下刷新页面404
        #      但是这样改动之后在其他页面刷新/后退等操作都会回到index.html页面
        location @router {
            rewrite ^.*$ /index.html last;
        }

        #改动3:设置跨域
        location /api {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Nginx-Proxy true;
            proxy_set_header Connection "";

            #跨域访问的后端地址
            proxy_pass http://120.xx.xxx.xxx:81;

            #我们发送请求的url如果是形如‘/api/getMsg?param=N‘
            #重写后就会变为‘http://120.xx.xxx.xxx:81/getMsg?param=N‘
            rewrite  ^/api/(.*)$ /$1 break;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    #...
}

个人认为重写是有必要掌握的,可以参考下面链接学习:

https://www.jianshu.com/p/a8261a1a64f8

启动Nginx服务

可以直接双击nginx解压后文件夹下的nginx.exe启动服务,也可以使用命令行终端:

nginx.exe所在目录> start nginx

其他命令:

nginx.exe?-s?stop 不保存相关信息
nginx.exe?-s?quit 可保存相关信息
nginx.exe?-s?reload 修改配置后重启服务
netstat -aon|findstr "80" 查看端口有“80”字段的服务
taskkill /f /t /im nginx.exe 终止Nginx服务

原文地址:https://www.cnblogs.com/hhtqwq/p/12700354.html

时间: 2024-08-30 12:40:57

vue-cli项目打包 并且用Nginx部署的相关文章

将react项目打包成静态页面部署到nginx服务器

1.https://blog.csdn.net/weixin_33859665/article/details/91465664 2. 链接:https://www.cnblogs.com/martinl/p/10908607.html 命令kill -9 pid杀死进程,pid是系统的父进程号 Ubuntu下载nginx:https://www.jb51.net/article/71384.htm 链接2:https://blog.csdn.net/qq_23832313/article/de

vue cli 项目的提交

前提: 配置git.以及git的ssh key信息 假设已经都安装好了,此处我用vue项目为例,因为vue-cli已经默认为我生成了ignore文件 在项目目录 初始化本地仓库,会创建一个.git目录 git init 将项目所有文件(未被ignore)添加到仓库 git add . 将add文件提交到本地仓库 git commit -m '提交信息' 本地仓库关联远程git仓库 git remote add origin git仓库 本地仓库代码提交到服务器 git push -u origi

vue cli 项目创建

初始化项目 我们用vue init命令来初始化项目,具体看一下这条命令的使用方法. $ vue init <template-name> <project-name>$ vue init <template-name> <project-name>init:表示我要用vue-cli来初始化项目 <template-name>:表示模板名称,vue-cli官方为我们提供了5种模板, webpack-一个全面的webpack+vue-loader的模

Vuex内容解析和vue cli项目中使用状态管理模式Vuex

中文文档:vuex官方中文网站 一.vuex里面都有些什么内容? const store = new Vuex.Store({ state: { name: 'weish', age: 22 }, getters: { personInfo(state) { return `My name is ${state.name}, I am ${state.age}`; } } mutations: { SET_AGE(state, age) { commit(age, age); } }, acti

Vue CLI 3搭建vue+vuex 最全分析

一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create .vue serve .vue ui 等命令) CLI 服务:@vue/cli-service是一个开发环境依赖.构建于 webpack 和 webpack-dev-server 之上(提供 如:serve.build 和 inspect 命令) CLI 插件:给Vue 项目提供可选功能的 npm 包 (如

Nginx 部署 Ant Design pro

利用Ant Design pro开发的项目,如何用Nginx部署呢? 第一步:把项目打包,打包命令如下: npm run build 运行完毕会在项目目录下生成dist文件夹. 第二步:想要测试打包好的代码是否可以正常运行,安装serve,如下命令 npm i serve -g serve安装完毕,利用serve运行打包好的代码,运行命令: serve dist 测试完毕,代码可以正常运行. 第三步:用Nginx进行部署. 1.下载Nginx:http://nginx.org/en/downlo

vue cli中环境变量和模式

环境变量配置 环境变量可以在以下文件中配置: .env # 在所有的环境中被载入 .env.local # 在所有的环境中被载入,但会被 git 忽略 .env.[mode] # 只在指定的模式中被载入 .env.[mode].local # 只在指定的模式中被载入,但会被 git 忽略 (.local优先于.env生效) 文件内部使用键值对的方式对变量进行配置 被载入的变量将会对 vue-cli-service 的所有命令.插件和依赖可用,同时为一个特定模式准备的环境文件的 (例如 .env.

npm 在安装 Vue脚手架命令(npm install -g @vue/cli)时报错安装报错--“Unexpected end of JSON input while parsing near&#183;&#183;&#183;”

在安装Vue的脚手架(npm install -g @vue/cli 项目名称)时,提示: Unexpected end of JSON input while parsing near 其实,但凡使用npm 时,只要提示这个,都可以按照以下几种方式进行尝试. 第一种:删掉package.lock.json 第二种:清除cache npm cache clean --force第三种:进入下面这个文件夹,把文件夹npm-cache下的内容删除掉(清除cache) 路径:C:/Users/DELL

vue cli 3.x 项目部署到 github pages

github pages 是 github 免费为用户提供的服务,写博客,或者部署一些纯静态项目. 最近将 vue cli 3.x 初始化项目部署到 github pages,踩了一些坑,记录如下. https://github.com/nusr/resume-vue 1. vue-router 不要开启 history 模式 路径中的 # 比较丑,就开启了 vue-router 的 history 模式,去掉了 #.平时做项目也是默认开启 history 模式.折腾了半天发现,我这是部署到 g