1.プロジェクトの初期化
npm init vite@latest
2. プロジェクト名を入力します
3. フレームワークを選択します。ここでは vue を選択します
4.TSを選択
5. プロジェクトを開始する
6. プロジェクトは正常に開始されました
注: 1. vscode で開発する場合は、volar を使用し、vue2 でよく使用されていたプラグイン Vetur を無効にすることをお勧めします。
2. vue ファイルの導入をサポートするように設定する必要があります。そうでない場合は、赤色で報告されます。
7. vite.config.tsを変更する
/*
* @Author: chuxiuli [email protected]
* @Date: 2023-02-16 15:58:03
* @LastEditors: chuxiuli [email protected]
* @LastEditTime: 2023-02-21 10:44:17
* @FilePath: \chizhou-ts-economyd:\project\vite\vite-project\vite.config.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
import { resolve } from 'path'
export default defineConfig({
plugins: [
vue(),
Components({
resolvers: [
AntDesignVueResolver({
importStyle: 'less', // 一定要开启这个配置项
}),
],
}),
],
base: './', //不加打包后白屏
server: {
host: 'localhost',
port: 9527,
open: true
},
resolve:{
//别名配置,引用src路径下的东西可以通过@如:import Layout from '@/layout/index.vue'
alias:[
{
find:'@',
replacement:resolve(__dirname,'src')
}
]
},
css: {
preprocessorOptions: {
less: {
modifyVars: { // 在这里自定义主题色等样式
'primary-color': '#1da57a',
'link-color': '#1da57a',
'border-radius-base': '2px',
},
javascriptEnabled: true,
},
},
},
})
8. ルーティングのインストール
npm install vue-router@4
(1) src配下にrouterフォルダを作成し、index.tsを新規作成
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
const routes: Array<RouteRecordRaw> = [
{
path: '/home',
name: 'home',
component:()=>import('../components/HelloWorld.vue')
},
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
(2) 2.main.tsにマウントルートをインポート
import { createApp } from 'vue'
import './common.scss'
import store from './store'
import router from './router'
import App from './App.vue'
createApp(App).use(store).use(router).mount('#app')
9.Axiosのインストール
npm install axios
同時に、utils フォルダーに新しい request.ts ファイルを作成します。
// 首先先引入aixos
import axios from 'axios'
import ipConfig from './ip-config';
// 创建一个axios 实例
const service = axios.create({
baseURL: ipConfig.baseIp, // 基准地址
timeout: 5000 // 超时时间
})
// 添加请求拦截器
service.interceptors.request.use(function (config:any) {
// 在发送请求之前做一些处理,数据转换,配置请求头,设置token,,设置loading等
config.headers={
'Content-Type':'application/json;blob' //配置请求头
}
const token=localStorage.getItem('token')
if(token){
config.headers['Authorization'] = 'Bearer ' + token
}
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
service .interceptors.response.use(function (response:any) {
// 对响应数据做点什么
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});
// 最后导出
export default service
実際のプロジェクトでは複数の環境が存在する可能性があるため、baseurl が動的に設定されることに注意してください。新しい ip-config.ts ファイルを作成します。
const env:any=import.meta.env.MODE;
const IP={
development:{//开发环境
baseIp:'http://59.203.198.112:18088/yzt-cloud3/',
},
loca:{//本地环境
baseIp:'ccccccccc'
},
prod:{//生产环境
baseIp:'http://59.203.198.112:18088/yzt-cloud2/',
},
test:{
baseIp:'http://59.203.198.112:18088/yzt-cloud1/',//测试环境
}
};
export default IP[env];
対応する package.json ファイルは次のように構成されます
"scripts": {
"dev": "vite",
"loca": "vite --mode loca",
"build": "vue-tsc && vite build",
"test":"vue-tsc && vite build --mode test",
"prod":"vue-tsc && vite build --mode prod",
"preview": "vite preview"
},
対応するコマンドを実行するには、ローカル、テスト、実稼働の 3 つの環境があります。
ローカルで実行: npm run locala
テストのパッケージ化: npm run test
実稼働パッケージ: npm run prod
10. 新しい http.ts ファイルを作成して、get、post、put などのリクエスト メソッドをカプセル化します。
import request from './request';
interface paramsObj{
method:string,
url:string,
params?:any,
data?:any
}
const http ={
get(url,params){
const config: paramsObj={
method: 'get',
url:url
}
if(params) config.params=params
return request(config)
},
post(url,params){
const config: paramsObj = {
method: 'post',
url:url
}
if(params) config.data = params
return request(config)
},
put(url,params){
const config: paramsObj = {
method: 'put',
url:url
}
if(params) config.params = params
return request(config)
},
delete(url,params){
const config: paramsObj = {
method: 'delete',
url:url
}
if(params) config.params = params
return request(config)
}
}
export default http
最後に、これは main.ts ファイル内でグローバルに導入され、各ページ コンポーネントはこのメソッドを直接呼び出すことができます。
createApp(App).config.globalProperties.$http=http//全局挂载
11. vite.config.ts ファイルでクロスドメインを構成する