Deno 配置
deno 安装完成后,要高效的使用Deno需要配置环境,比如命令行自动补全、环境变量、编辑器或 IDE。
环境变量
这是一些控制 Deno 行为的环境变量:
DENO_DIR
默认值为 $HOME/.cache/deno
,但其可以设置为任何路径。DENO_DIR
是 Deno 存放生成的代码和缓存的源码的路径。
如果 NO_COLOR
被设置,Deno 将会关闭彩色输出 (https://no-color.org/)。用户代码可以通过布尔常量 Deno.noColor
测试 NO_COLOR
是否被设置,这不需要环境权限 (--allow-env
)。
命令行自动补全
通过 deno completions <shell>
命令可以生成补全脚本。它会输出到 stdout,您应该将它重定向到适当的文件。
Deno 支持的 shell 如下:
- zsh
- bash
- fish
- powershell
- elvish
示例 (bash):
deno completions bash > /usr/local/etc/bash_completion.d/deno.bash
source /usr/local/etc/bash_completion.d/deno.bash
示例 (zsh without framework):
mkdir ~/.zsh # 新建一个文件夹来保存您的补全,它可以在任意地方。
deno completions zsh > .zsh/_deno
然后把以下内容加入您的 .zshrc
fpath=(~/.zsh $fpath)
autoload -Uz compinit
compinit -u
重启您的终端。如果补全仍未加载,您可能需要运行 rm ~/.zcompdump/
来移除之前生成的补全,然后运行 compinit
来再次生成它们。
示例 (zsh + oh-my-zsh) [推荐]:
mkdir ~/.oh-my-zsh/custom/plugins/deno
deno completions zsh > ~/.oh-my-zsh/custom/plugins/deno/_deno
在此之后,在 ~/.zshrc
文件中的 plugins 标签下增加 deno
插件。对于 antigen
之类的工具,路径将会是 ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins
,命令将是 antigen bundle deno
。
编辑器和 IDE
Deno 需要用文件后缀名来支持模块导入和 HTTP 导入。目前,大多数编辑器和语言服务器没有原生支持这点,一些编辑器可能会抛出“无法找到文件”的错误,或是“不必要的文件后缀名”错误。
社区已经开发了一些插件用来解决这些问题。
VS Code
在VSCode的扩展商店中搜索dent-vscode可以安装插件对deno的支持。
JetBrains IDE
JetBrains IDE 通过插件来提供 Deno 支持:
Deno 插件:https://plugins.jetbrains.com/plugin/14382-deno
Vim 和 NeoVim
如果您安装 CoC(intellisense engine and language server protocol),Vim 对于 Deno/TypeScript 来说非常友好。
当安装完 CoC 后,可以在 Vim 内部运行 :CocInstall coc-deno
。你会发现,诸如 gd
(转到定义)和 gr
(转到/查找引用)之类的东西可以正常工作了。
Emacs
对于目标为 Deno 的 TypeScript 项目,Emacs 工作得很好,只需使用两个插件:
- tide:这是在 Emacs 中使用 TypeScript 的典范方法。
- typescript-deno-plugin:它被 Deno 官方 VSCode 插件 使用。
首先确保您已经安装了 tide
,下一步,按照 typescript-deno-plugin 页面的指示,在项目中运行 npm install --save-dev typescript-deno-plugin typescript
(npm init -y
是必要的),并在 tsconfig.json
中添加以下设置,然后准备开发吧!
{
"compilerOptions": {
"plugins": [
{
"name": "typescript-deno-plugin",
"enable": true, // default is `true`
"importmap": "import_map.json"
}
]
}
}
Sublime Text
安装 Sublime LSP 包
安装 TypeScript package 以获得语法高亮显示
将以下.sublime-project
文件添加到项目文件夹中
{
"settings": {
"LSP": {
"deno": {
"command": [
"deno",
"lsp"
],
"initializationOptions": {
// "config": "", // Sets the path for the config file in your project
"enable": true,
// "importMap": "", // Sets the path for the import-map in your project
"lint": true,
"unstable": false
},
"enabled": true,
"languages": [
{
"languageId": "javascript",
"scopes": ["source.js"],
"syntaxes": [
"Packages/Babel/JavaScript (Babel).sublime-syntax",
"Packages/JavaScript/JavaScript.sublime-syntax"
]
},
{
"languageId": "javascriptreact",
"scopes": ["source.jsx"],
"syntaxes": [
"Packages/Babel/JavaScript (Babel).sublime-syntax",
"Packages/JavaScript/JavaScript.sublime-syntax"
]
},
{
"languageId": "typescript",
"scopes": ["source.ts"],
"syntaxes": [
"Packages/TypeScript-TmLanguage/TypeScript.tmLanguage",
"Packages/TypeScript Syntax/TypeScript.tmLanguage"
]
},
{
"languageId": "typescriptreact",
"scopes": ["source.tsx"],
"syntaxes": [
"Packages/TypeScript-TmLanguage/TypeScriptReact.tmLanguage",
"Packages/TypeScript Syntax/TypeScriptReact.tmLanguage"
]
}
]
}
}
}
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/59582.html