您现在的位置是:首页 > 编程 > 

【Vue工程】001

2025-07-27 06:56:08
【Vue工程】001 【Vue工程】001-Vite 创建 Vue-Ts 项目一、环境代码语言:javascript代码运行次数:0运行复制# Windows 10 IoT 企业版 LTSC D:\MyResearch\vue-admin>node -v v18.15.0 D:\MyResearch\vue-admin>pnpm -v 8..1二、创建项目1、pnpm 创建 Vit

【Vue工程】001

【Vue工程】001-Vite 创建 Vue-Ts 项目一、环境代码语言:javascript代码运行次数:0运行复制
# Windows 10 IoT 企业版 LTSC
D:\MyResearch\vue-admin>node -v
v18.15.0

D:\MyResearch\vue-admin>pnpm -v
8..1
二、创建项目

1、pnpm 创建 Vite 项目

代码语言:javascript代码运行次数:0运行复制
pnpm create vite

2、设置项目名

代码语言:javascript代码运行次数:0运行复制
D:\MyResearch\vue-admin>pnpm create vite
../../.pnpm-store/v/tmp/dlx-8988        |   +1 +
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: D:\.pnpm-store\v
  Virtual store is at:             ../../.pnpm-store/v/tmp/dlx-8988/node_modules/.pnpm
../../.pnpm-store/v/tmp/dlx-8../../.pnpm-store/v/tmp/dlx-8988        | Progress: resolved 1, reused 0, downloaded 1, added 1, doneme: » vite-project
? Project name: » my-vue-ts

、选择vue

选择之后按回车键下一步!

代码语言:javascript代码运行次数:0运行复制
# 省略...
? Select a framework: » - Use arrow-keys. Return to submit.
    Vanilla
>   Vue
    React
    Preact
    Lit
    Svelte
    Others

4、选择 TypeScript

选择之后按回车键下一步!

代码语言:javascript代码运行次数:0运行复制
? Select a variant: » - Use arrow-keys. Return to submit.
>   TypeScript
    JavaScript
    Customize with create-vue ↗
    uxt ↗

5、创建完成

代码语言:javascript代码运行次数:0运行复制
Scaffolding project in D:\MyResearch\vue-admin\my-vue-ts...

Done. ow run:

  cd my-vue-ts
  pnpm install
  pnpm run dev

6、安装与启动

代码语言:javascript代码运行次数:0运行复制
D:\MyResearch\vue-admin>cd my-vue-ts

D:\MyResearch\vue-admin\my-vue-ts>pnpm install
 WAR  deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
Packages: +47
+++++++++++++++++++++++++++++++++++++++++++++++
Packages are copied from the content-addressable store to the virtual store.
  Content-addressable store is at: D:\.pnpm-store\v
  Virtual store is at:             node_modules/.pnpm
Downloading /typescript/5.0.2: 7.05 MB/7.05 MB, done
node_modules/.pnpm/esbuild@0.17.18/node_modules/esbuild: Running postinstall script, done in 241ms
Progress: resolved 69, reused 4, downloaded 1, added 47, done

dependencies:
+ vue .2.47

devDependencies:
+ @vitejs/plugin-vue 4.1.0
+ typescript 5.0.2 (5.0.4 is available)
+ vite 4..2 (4.. is available)
+ vue-tsc 1.4.2 (1.6.0 is available)

Done in 22.9s

D:\MyResearch\vue-admin\my-vue-ts>pnpm run dev

> my-vue-ts@0.0.0 dev D:\MyResearch\vue-admin\my-vue-ts
> vite


  VITE v4..2  ready in 58 ms

  ➜  Local:   http://localhost:517/
  ➜  etwork: use --host to expose
  ➜  press h to show help

7、访问 http://localhost:517/

image-202042722150468

8、默认生成的项目结构

image-202042722144619

9、修改 tsconfig.json

代码语言:javascript代码运行次数:0运行复制
{
  "compilerOpti": {
    // 将代码编译为最新版本的 JS
    "target": "ESext",
    // 使用 ES Module 格式打包编译后的文件
    "module": "ESext",
    // 使用 ode 的模块解析策略
    "moduleResolution": "node",
    // 引入 ES 最新特性和 DOM 接口的类型定义
    "lib": [
      "ESext",
      "DOM",
      "DOM.Iterable"
    ],
    // 跳过对 . 文件的类型检查
    "skipLibCheck": true,
    // 允许引入 JSO 文件
    "resolveJsonModule": true,
    // 要求所有文件都是 ES Module 模块。
    "isolatedModules": true,
    // 不输出文件,即编译后不会生成任何js文件
    "noEmit": true,
    // 保留原始的 JSX 代码,不进行编译
    "jsx": "preserve",
    // 开启所有严格的类型检查
    "strict": true,
    // 报告未使用的局部变量的错误
    "noUnusedLocals": true,
    // 报告函数中未使用参数的错误
    "noUnusedParameters": true,
    // 确保switch语句中的任何非空情况都包含
    "noFallthroughCasesInSwitch": true,
    // 允许使用 import 引入使用 export = 导出的内容
    "esModuleInterop": true,
    // 允许使用js
    "allowJs": true,
    // 查询的基础路径
    "baseUrl": ".",
    // 路径映射,配合别名使用
    "paths": {
      "@/*": [
        "src/*"
      ],
      "#/*": [
        "types/*"
      ]
    }
  },
  // 需要检测的文件
  "include": [
    "src/**/*.ts",
    "src/**/*.",
    "src/**/*.tsx",
    "src/**/*.vue"
  ],
  // 为文件进行不同配置
  "references": [
    {
      "path": "./json"
    }
  ]
}

10、修改 json

代码语言:javascript代码运行次数:0运行复制
{
  "compilerOpti": {
    "composite": true,
    "skipLibCheck": true,
    "module": "ESext",
    "moduleResolution": "ode",
    "allowSyntheticDefaultImports": true
  },
  "include": [""]
}

11、新建 src/typings.

提示:遇到 ts 报错,有些时候是配置未生效,可以重启 vscode 或 ts 服务( vscode 快捷键 ctrl+shift+p 调出命令行,输入 Restart TS Server )

代码语言:javascript代码运行次数:0运行复制
// 声明 window 上自定义属性,如事件总线
declare interface Window {
  eventBus: any;
}

// 声明 .vue 文件
declare module '*.vue' {
  import { DefineComponent } from 'vue';
  ct component: DefineComponent<object, object, any>;
  export default component;
}

12、在 package.json 中新增 ts 类型检查脚本

执行:pnpm run ts 即可检查是否存在 ts 类型错误!

代码语言:javascript代码运行次数:0运行复制
"ts": "vue-tsc --noEmit",
三、配置路径别名

1、安装 @types/node 依赖

代码语言:javascript代码运行次数:0运行复制
yarn add @types/node -D

2、修改

代码语言:javascript代码运行次数:0运行复制
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
// 这个path用到了上面安装的 @types/node
import path from "path";

// /config/
export default defineConfig({
  plugins: [vue()],
  // 在这里进行配置别名
  resolve: {
    alias: {
      // @代替src
      "@": path.resolve("./src"),
      // #代替types
      "#": path.resolve("./types"),
    },
  },
});

、ts 路径映射

参考上面, 已在修改 tsconfig.json 时通过 baseUrl 与 paths 属性完成。

代码语言:javascript代码运行次数:0运行复制
	// 查询的基础路径
    "baseUrl": ".",
    // 路径映射,配合别名使用
    "paths": {
      "@/*": [
        "src/*"
      ],
      "#/*": [
        "types/*"
      ]
    }
四、其他说明

1、@types/node 依赖

概述

@types/node 是一个 TypeScript 类型声明包,它包含 ode.js 中的所有类型定义。在 TypeScript 项目中,我们需要类型声明来提供类型信息,才能获得类型检查、自动补全等功能。但是 ode.js 本身的代码是由 JavaScript 编写的,没有类型信息。所以,@types/node 这个类型声明包为所有的 ode.js API 都提供了 TypeScript 的类型定义,类似:

代码语言:javascript代码运行次数:0运行复制
ts
interface Respe extends http.IncomingMessage {}
function createServer(requestListener?: (req: http.IncomingMessage, res: http.ServerRespe) => void): http.Server;

这段代码为 http 模块的 requestListener 方法提供了类型定义。这样,在我们的 TS 代码中使用这个 API 时,就有了类型检查和提示。比如,我们这样使用:

代码语言:javascript代码运行次数:0运行复制
ts
import * as http from 'http'

ct server = ((req, res) => {
  ()  
})

如果写成:

代码语言:javascript代码运行次数:0运行复制
ts
(1)  // 错误,end() 方法不接收参数

就会报错,因为 @types/node 已经声明 end() 方法不接受参数。所以,@types/node 类型声明包为我们提供了 ode.js 全部 API 的类型定义,让我们可以在 TypeScript 项目中无障碍地使用 ode.js。它是 TypeScript + ode.js 项目中必不可少的一个依赖。总的来说,@types/node 为 TypeScript 提供了:- ode.js 所有模块 API 的类型定义 - 丰富的类型检查和自动补全功能 - 更好的代码编写体验它让我们可以快速在 TS 项目中使用 ode.js,而不必硬编码所有的类型定义,大大提高了开发效率。

安装
代码语言:javascript代码运行次数:0运行复制
pnpm install @types/node --save-dev
依赖包
代码语言:javascript代码运行次数:0运行复制
devDependencies:
+ @types/node 18.16.

2、配置 moduleResolution 选项

如果 VS Code 报错:Cannot find module ‘vue’. Did you mean to set the ‘moduleResolution’ option to ‘node’, or to add aliases to the ‘paths’ option? 配置为:“moduleResolution”: “node”,

“moduleResolution” 选项有以下几种取值:

  • “node” - 以 ode.js 兼容的方式解析模块,支持 .js, .json, .node 等后缀
  • “classic” - 以传统的 TS 解析方式,只支持 .ts, .tsx, . 后缀
  • “bundler” - 以 bundler 友好的方式解析,支持 .js, .jsx, .ts, .tsx, .css, .json 等后缀 所以,设置为 “node” 与 “bundler” 的区别在于: “node”:
  • 只支持 ode.js 默认支持的后缀,像 .vue 需要额外配置 alias 或 paths 选项
  • 模块只在运行时结合在一起,适合 ode.js 开发 “bundler”:
  • 支持更多 bundler 友好的后缀,像 .vue, .css 不需要额外配置就支持
  • 编译后的模块会有更好的兼容性,适合 webpack 等 bundler 开发 所以,如果你的项目是一个: ode.js 项目,推荐设置为 “node”。这样可以很好地与 ode.js 的模块解析方式兼容,但是某些 web 相关文件需要额外配置。 Webpack 或 vue-cli 等构建工具项目,推荐设置为 “bundler”。这样可以支持更丰富的模块类型,编译后也会有更好的兼容性,直接被这些构建工具识别。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:202-05-07,如有侵权请联系 cloudcommunity@tencent 删除vite编译开发配置typescript

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1199402.html

相关标签:无
上传时间: 2025-07-23 15:19:41

上一篇:【Vue工程】002

下一篇:【Python】002

留言与评论(共有 15 条评论)
本站网友 xlkk
19分钟前 发表
设置项目名代码语言:javascript代码运行次数:0运行复制D
本站网友 让利
12分钟前 发表
any; } // 声明 .vue 文件 declare module '*.vue' { import { DefineComponent } from 'vue'; ct component
本站网友 设立
27分钟前 发表
node_modules/.pnpm Downloading /typescript/5.0.2
本站网友 金鱼精
12分钟前 发表
DefineComponent<object
本站网友 中国梦之声投票通道
4分钟前 发表
// 不输出文件
本站网友 如何瘦腿最快最有效
4分钟前 发表
[ "ESext"
本站网友 重庆经济适用房
30分钟前 发表
.json 等后缀 所以
本站网友 怎么样祛痘
9分钟前 发表
"#/*"
本站网友 吸吮乳尖
17分钟前 发表
.jsx
本站网友 健康饮食减肥
9分钟前 发表
"#/*"
本站网友 维也纳森林别墅
5分钟前 发表
+ @types/node 18.16.2
本站网友 11检测到不匹配
17分钟前 发表
安装代码语言:javascript代码运行次数:0运行复制pnpm install @types/node --save-dev依赖包代码语言:javascript代码运行次数:0运行复制devDependencies
本站网友 摩打食堂
9分钟前 发表
// 保留原始的 JSX 代码
本站网友 胡辣汤加盟
22分钟前 发表
.css 不需要额外配置就支持编译后的模块会有更好的兼容性