vue3+ts+vite 上线打包流程步骤(亲测有效)

vue3+ts+vite 上线打包流程步骤(亲测有效)

1.设置代理,以及解决跨域问题在vite.config.ts文件中

 server: {
    open:true,   //默认启动项目打开页面
    port:5173,   //端口号
    proxy: {
      "/api": {
        // 匹配请求路径,
        target: "http://xxxxxx",//正式域名
        changeOrigin: true,
        // secure: true, // 是否https接口
        ws: true, // 是否代理websockets
        rewrite: (path) => path,
        // rewrite: (path) => path.replace(/^\/api/, '') (看接口具体情况)
      },
    },
  },

2.新建一个文件(.env.staging)在根目录上
在这里插入图片描述
3.在(.env.staging)中写入如下代码:(VITE_是必须加的,MODE可有可没有)

MODE = 'staging'
VITE_DEV_SERVER = http://localhost:5173
VITE_SERVER = http://xxxxxxx (正式域名)

4.在request.ts文件中进行路径判断

let baseURL = ''
if(import.meta.env.MODE === 'staging') { // 预备模式
    baseURL = process.env.NODE_ENV === 'development' ? import.meta.env.VITE_DEV_SERVER : import.meta.env.VITE_SERVER
} else { // development或production模式
    baseURL = ''
}

// 创建axios实例
const request = axios.create({
    baseURL:baseURL+'/api',// 所有的请求地址前缀部分(没有后端请求不用写)
   .....
})

request.ts完整代码:

import axios from 'axios'
import router from '../routes'
let baseURL = ''
if(import.meta.env.MODE === 'staging') { // 预备模式
    baseURL = process.env.NODE_ENV === 'development' ? import.meta.env.VITE_DEV_SERVER : import.meta.env.VITE_SERVER
} else { // development或production模式
    baseURL = ''
}

// 创建axios实例
const request = axios.create({
    baseURL:baseURL+'/api',// 所有的请求地址前缀部分(没有后端请求不用写)
    timeout: 80000, // 请求超时时间(毫秒)
    withCredentials: true,// 异步请求携带cookie
    headers: {
    // 设置后端需要的传参类型  
    'Content-Type': 'application/json',
    'X-Requested-With': 'XMLHttpRequest',
    },
})
 
// request拦截器
request.interceptors.request.use(
    config => {
        // 如果你要去localStor获取token,(如果你有)
        let token = sessionStorage.getItem("x-auth-token")
        if (token) {
            // 添加请求头
            config.headers["Authorization"] = "Bearer " + token
            config.headers["token"]=  token
        }
        return config
    },
    error => {
        // 对请求错误做些什么
        Promise.reject(error)
    }
)
 
// response 拦截器
request.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        const res =  response.data
        if(res.code === 1) return res
        if (res.code === -2) {    
            ElMessage.error('请先登陆!')
            router.push({
               path:'/Login'
            }) 
            return res
        }
        if(res.code !== 1 && res.code !== -2) return ElMessage.error(res.msg)
    },
    error => {  
        // 对响应错误做点什么
        return Promise.reject(error)
    }
)
export default request

4.在package.json中加入运行代码

"dev:staging": "vite dev --mode staging",
"build:staging": "vite build --mode staging",
"build-only-staging": "vite build --mode staging",

在这里插入图片描述

5.在终端运行

npm run dev:staging //会运行VITE_DEV_SERVER 数据
npm run build:staging //会运行VITE_SERVER数据进行打包

6.把打包好的数据压缩给后台,后台上传到服务器
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue 3 + TypeScript + Vite项目的打包配置,你可以按照以下步骤进行设置: 1. 安装依赖:在项目根目录下运行以下命令安装所需的依赖项: ``` npm install --save-dev vite @vitejs/plugin-vue@next typescript vue-tsc ``` 2. 创建`tsconfig.json`文件:在项目根目录下创建`tsconfig.json`文件,并添加以下内容: ```json { "compilerOptions": { "target": "esnext", "module": "esnext", "moduleResolution": "node", "strict": true, "jsx": "preserve", "importHelpers": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, "experimentalDecorators": true, "skipLibCheck": true, "sourceMap": true, "baseUrl": ".", "paths": { "@/*": ["src/*"] } }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], "exclude": ["node_modules"] } ``` 3. 配置`vite.config.ts`文件:在项目根目录下创建`vite.config.ts`文件,并添加以下内容: ```typescript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [vue()], }); ``` 4. 修改`package.json`文件:将`scripts`字段中的`"dev"`和`"build"`命令修改为以下内容: ```json { "scripts": { "dev": "vite", "build": "vue-tsc --noEmit && vite build" } } ``` 这里我们使用`vue-tsc --noEmit`命令来进行类型检查,然后再执行`vite build`命令进行打包。 现在,你可以运行`npm run dev`启动开发服务器,或者运行`npm run build`进行项目打包。希望这些步骤能够帮助到你!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值