# SFC 工具

# 在线演练场

你不需要在你的机器上安装任何东西来尝试 Vue 单文件。这里有很多在线演练场允许你在浏览器中运行:

在报告问题时也建议通过这些在线演练场来提供复现。

# 项目脚手架

# Vite

Vite(opens new window) 是一个轻量级的快速构建工具,它对 Vue 单文件提供最优支持。它由尤雨溪创建,尤雨溪同时也是 Vue 本身的作者。如果要运行 Vite + Vue:

npm init vite@latest
1

然后选择 Vue 模板并按照说明操作。

单文件演练场(opens new window) 也支持下载 Vite 项目的文件。

# Vue CLI

Vue CLI(opens new window) 是 Vue 官方基于 webpack 的构建工具。可以通过 Vue CLI 进行使用:

npm install -g @vue/cli
vue create hello-vue
1
2

# Vite 还是 Vue CLI?

鉴于 Vite 在开发中服务的启动和 HMR 更新的性能方面提供了更为卓越的开发体验,因此我们推荐你使用 Vite 来开始新的项目。(详情(opens new window) )。如果你依赖某个特定的 webpack 功能(如 Module Federation)那么建议你使用 Vue CLI。

如果你是 Rollup(opens new window) 用户,你可以安全地使用 Vite,因为 Vite 使用了 Rollup 进行生产构建,支持并兼容 Rollup 插件系统。甚至 Rollup 的维护者也推荐使用 Vite 来进行基于 Rollup 的 Web 开发(opens new window)

# IDE 支持

推荐的 IDE 配置是 VSCode(opens new window) + Volar(opens new window) 扩展。Volar 为模板表达式、组件 prop,甚至是插槽验证提供了语法高亮和智能提示。我们强烈推荐这种设置,特别是如果你也在使用 TypeScript。

WebStorm(opens new window) 也对 Vue 单文件提供了不错的支持。请注意,到目前为止它对 <script setup> 的支持仍然是进行中(opens new window)

大多数其他编辑器都有社区创建的 Vue 语法高亮功能,但缺乏同样水平的代码智能提示。从长远来看,我们确实希望通过 Language Service Protocol(opens new window) 来扩大编辑器的支持范围,因为 Volar 的核心逻辑是用标准语言服务的方式实现的。

# 测试支持

# 自定义块集成

自定义块 (custom block) 会被编译进同一个 Vue 文件,产生不同请求查询参数。这取决于底层构建工具如何处理这些导入请求。

  • 如果使用 Vite,应该使用一个自定义的 Vite 插件来把匹配的自定义块转为可执行的 JavaScript。[例子(opens new window) ]

  • 如果使用 Vue CLI 或者普通的 webpack 配置,应该配置一个 webpack loader 来转换匹配到的自定义块。[例子(opens new window) ]

# 底层工具

# @vue/compiler-sfc

这个包是 Vue 核心仓库的一部分,始终和当前 vue 包保持相同的版本。通常情况下,它将被列为项目中 vue 的同级依赖。为了确保不出问题,应该始终和 vue 的版本保持同步:也就是说当你升级 vue 版本时候,应该同时升级 @vue/compiler-sfc 来保持一致。

这个包本身提供了处理 Vue 单文件的底层工具,只对库作者需要对单文件进行支持时候有意义。

# @vitejs/plugin-vue

官方插件可以在 Vite 中提供对 Vue 单文件提供支持。

# vue-loader

在 webpack 中提供官方 loader 来支持 Vue 单文件。如果你正在使用 Vue CLI 可以参阅 在 Vue CLI 中修改 vue-loader 选项(opens new window)