Prettier 是一个代码格式化工具,可以轻松地规范化代码风格,并且支持多种语言。 在本文中,我将向您展示如何在 Deno 中使用 prettier 进行代码格式化。
安装 prettier
Deno是一种新的JavaScipt环境,它强调安全和开发体验。 目前,Deno并没有像 npm 这样的包管理器。 因此,我们需要在依赖库中直接使用 ES 模块。
安装步骤如下:
- 将 Prettier 作为 Deno 依赖项添加到 package.json:
{ "dependencies": { "prettier": "^2.0.5" } }
- 运行以下命令来安装依赖项:
$ deno install --allow-write --allow-read https://deno.land/x/install/install.ts $ deno run --allow-read --allow-write http://deno.land/std/examples/installer.ts
创建格式化脚本
现在我们可以开始编写格式化脚本了。 下面是一个简单的脚本示例:
-- -------------------- ---- ------- ------ - -- -------- ---- --------------------- ------ - -- -------------- ---- -------------------------- ------ - -- ---------- ---- ---------------------- ------ - -- --------- ---- ------------------------- ------ - -- -------- ---- ---------------------------- ----- ----- - --------- ----- -------- ---------------- - - ----------- --- --------- -- ------------ ----- ------- ------------- -------------- ------ - --- ------ ---- -- ------ - ----- ----- - --------------------------- ----- ------ - ---------------------- - ----------- --------- ---- -- ---------------------------- ------- -
这个脚本有如下作用:
- 将 prettier 作为 ES 模块导入;
- 定义要格式化的文件列表;
- 创建 prettier 的一些基本配置,例如缩进方式、行宽、是否使用单引号、语言解析器、尾随逗号,其他配置可以在 prettier 的文档中查看;
- 使用循环遍历每个文件,读取文件内容,使用 prettier 格式化,然后写回文件。
在上述示例代码中,我们需要注意以下两个键值对的不同:
import * as parserTS from 'prettier/parser-typescript'
parser: 'typescript'
在使用 prettier 时,需要确保你安装了正确的解析器 plugin。 更具体来说,我们需要将引用的 parserXXX 导入文件从 prettier/scripts 下载到我们的本地目录,或者直接从包管理器中安装。
例如,要使用 parser-typescript,我们需要将 prettier/scripts/parser-typescript.js 文件放到本地项目中,并将其导入脚本,与其他导入语句相同。
运行 prettier
运行 format.ts 文件,通过以下方式实现格式化:
$ deno run --allow-read --allow-write ./format.ts filename.ts
您可以在上述命令中传入多个文件名,以使其全部按照定义规则进行格式化。
在上面的命令中,我们指定了格式化脚本的位置和要格式化的文件名,让 Deno 运行这个脚本。 这个命令将会改变文件的格式,并保存在原文件名对应的位置。
总结
在本文中,我们学习了在 Deno 中使用 prettier 来格式化代码的方法,并编写了一个可以适用于 TypeScript 的示例代码。
拥有格式正确的代码有许多好处,例如增加可读性、帮助快速排错、提高代码质量等。
有了这个教程,您现在可以开始在您的 Deno 项目中使用 Prettier 了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b24cb748841e9894e8f0f6