Vue3+TS + vite 创建项目

本文介绍了使用vite工具快速搭建Vue项目的步骤,包括配置TypeScript、vue-router、Vuex及AntDesignVue,同时对比了vue-cli的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、首先给大家介绍一款极速搭建项目的构建工具(vite)

vite 是一个由原生ESM驱动的Web开发构建工具,打开 vite 依赖的 package.json 可以发现在 devDependencies 开发依赖里面已经引入了TypeScript ,甚至还有 vuex , vue-router , less , sass 这些本地开发经常需要用到的工具。vite 轻量,开箱即用的特点,满足了大部分开发场景的需求,作为快速启动本地 Vue项目来说,这是一个非常完美的工具。

npm init vite-app <projectName> 
//或者
yarn create vite-app <projectName>

用vite安装时特别快的,就是有一个缺点,很多配置还需要自己来下载,基本要下载哪些呢?下面就给大家写在这里了,如下:

1、先来配置项目

(1)、安装typescript

yarn add typescript -D

(2)、初始化 tsconfig.json

//执行命令 初始化 tsconfig.json 
npx tsc --init     

(3)、 将main.js修改为main.ts

其他的引用也修改为main.ts,也需要将其他页面的 <script> 修改为 <script lang="ts">

(4)、 配置 ts 识别vue文件,在项目根目录添加shim.d.ts文件,添加以下内容:

declare module "*.vue" {
  import { Component } from "vue";
  const component: Component;
  export default component;
}

2、安装vue-router,目前版本号:v4.0.12

(1)安装

yarn add vue-router@4.0.12
// or
yarn add vue-router@next

(2)、安装完后配置vue-router
在项目src目录下面新建router目录,然后添加index.ts文件,添加以下内容

// import VueRouter from 'vue-router'
import {createRouter, createWebHashHistory} from 'vue-router'
const routes:any = []
// Vue-router新版本中,需要使用createRouter来创建路由
export default  createRouter({
  // 指定路由的模式,此处使用的是hash模式
  history: createWebHashHistory(),
  routes // short for `routes: routes`
})

// const routes :any = []
// // 3. Create the router instance and pass the `routes` option
// // You can pass in additional options here, but let's
// // keep it simple for now.
// const router = VueRouter.createRouter({
//   // 4. Provide the history implementation to use. We are using the hash history for simplicity here.
//   history: VueRouter.createWebHashHistory(),
//   routes, // short for `routes: routes`
// })

 (3)、将router引入到main.ts中,修改main.ts文件

import { createApp } from 'vue'
import App from './App.vue'
import './index.css'
import router from './router/index'

// import router 后创建并挂载根实例。
const app = createApp(App)
// 确保 t_use_  实例来创建router, 将路由插件安装到 app 中
app.use(router)
app.mount('#app')
// createApp(App).mount('#app')

3、配置Vuex,目前版本v4.0.2

(1).安装 

yarn add vuex@4
//或者
yarn add vuex@next

(2).安装完后配置vuex
在项目src目录下面新建store目录,并添加index.ts文件,添加以下内容

import { createStore } from 'vuex'

interface State {
  userName: string
}
export default createStore({
  state(): State {
    return {
      userName: "vuex",
    };
  },
});

4、配置Ant Design Vue

具体使用方式请参考:官方文档 

(1).安装ant-design-vue插件

yarn  add ant-design-vue@next

(2).在main.js中写入一下内容

iimport { createApp } from 'vue'
import App from './App.vue'
import './index.css'
import AntDesignVue from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
import router from './router/index'
import store from './store/index'

// import router 后创建并挂载根实例。
const app = createApp(App)
// 确保 t_use_  实例来创建router
// 整个应用程序路由器感知。
app.use(router)
app.use(store)
app.use(AntDesignVue)
app.mount('#app')
// createApp(App).mount('#app')

二、用vue-cli搭建项目 

选择起来更加灵活可控。丰富的官方插件适配,GUI的创建管理界面,标准化开发流程,这些都是 vue-cli 的特点。

 

照图安装上之后就可以了,不用下载其他插件了。 

### 创建带有Vue 3TypeScriptVite 5的服务器端渲染(SSR)项目 为了创建一个支持服务器端渲染(SSR)的Vue 3应用,使用TypeScript作为编程语言以及Vite 5作为构建工具,可以遵循如下方法: #### 初始化项目结构 首先安装`vite-plugin-vue2-ssr`插件来辅助设置SSR环境。然而对于Vue 3而言,应该关注官方推荐的方式或是社区内成熟的解决方案。 ```bash npm init vite@latest my-ssr-app --template vue-ts cd my-ssr-app ``` 这会基于模板初始化一个新的项目,其中包含了基本配置文件和支持TypeScript的基础架构[^1]。 #### 安装依赖项 接着增加必要的依赖包用于实现服务端渲染功能: ```bash npm install @vue/server-renderer express ``` 这里引入了两个主要组件:一个是来自Vue团队专门为Vue设计的服务端渲染器;另一个是Express框架,用来搭建Node.js HTTP服务器并处理请求响应逻辑。 #### 修改入口文件 调整客户端启动脚本,在`main.ts`里仅保留根实例挂载部分,并移除任何与DOM操作有关的内容以便兼容服务端执行上下文。另外新建一个名为`server-entry.ts`的服务端专用入口文件负责组装完整的HTML页面字符串输出给浏览器加载解析。 ```typescript // main.ts (Client Entry Point) import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; const app = createApp(App) app.mount(&#39;#app&#39;) ``` ```typescript // server-entry.ts (Server Entry Point) import { renderToString } from &#39;@vue/server-renderer&#39; import { createApp } from &#39;./src/main&#39; // Adjust path according to your setup. export async function render() { const app = await createApp() return await renderToString(app) } ``` #### 构建HTTP Server 最后一步是在项目的根目录下编写简单的Express应用程序以监听特定端口等待传入连接,当接收到GET请求时调用之前定义好的render函数获取预渲染后的标记再发送回去完成整个流程闭环。 ```javascript // index.js or any other preferred filename. import express from &#39;express&#39;; import { fileURLToPath } from &#39;url&#39;; import { dirname, join } from &#39;path&#39;; import { readFileSync } from &#39;fs&#39;; import { render } from &#39;./build/server-entry.js&#39;; // Make sure this matches the output location of built files. const isProd = process.env.NODE_ENV === &#39;production&#39;; const root = dirname(fileURLToPath(import.meta.url)); const app = express(); app.use(&#39;/dist&#39;, express.static( join(root, &#39;dist&#39;), !isProd && { index: false } )); app.get(&#39;*&#39;, async(req, res) => { try{ let html; if(!isProd){ // In development mode we need hot-reload capabilities so use SSR directly without bundling first. html = await render(); }else{ // For production builds load pre-built HTML string instead. html = readFileSync(join(__dirname,&#39;./index.html&#39;), &#39;utf8&#39;); } res.setHeader(&#39;Content-Type&#39;,&#39;text/html;charset=utf-8&#39;); res.end(html); }catch(error){ console.error(`Error during rendering : ${error}`); res.status(500).end(&#39;Internal Server Error&#39;); } }); if (!isProd) { require(&#39;./server&#39;); // Start Vite dev server for HMR support etc... } else { app.listen(process.env.PORT || 3000, () => console.log(&#39;Production Express server running at http://localhost:3000/&#39;) ); } ``` 上述代码片段展示了如何利用Vite的强大特性快速建立一套现代化前端开发工作流的同时兼顾高效的生产部署方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值