【Vue工程】001
【Vue工程】001
# 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/
8、默认生成的项目结构
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.
代码语言:javascript代码运行次数:0运行复制提示:遇到 ts 报错,有些时候是配置未生效,可以重启 vscode 或 ts 服务( vscode 快捷键 ctrl+shift+p 调出命令行,输入 Restart TS Server )
// 声明 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 类型检查脚本
代码语言:javascript代码运行次数:0运行复制执行:pnpm run ts 即可检查是否存在 ts 类型错误!
"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 路径映射
代码语言:javascript代码运行次数:0运行复制参考上面, 已在修改 tsconfig.json 时通过 baseUrl 与 paths 属性完成。
// 查询的基础路径
"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”。这样可以支持更丰富的模块类型,编译后也会有更好的兼容性,直接被这些构建工具识别。
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上一篇:【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 不需要额外配置就支持编译后的模块会有更好的兼容性 |