用Visual Studio Code写Node.j
介绍
vsc
的宣传语是:
一个运行于
Mac OS X
、Windows
和Linux
之上的,针对于编写现代Web
和云应用的跨平台源代码编辑器。
按它说的,vsc
特别适合来作为前端开发编辑器。
内置html
开发神器emmet
(zencoding
),对css
及其相关编译型语言Less
和Sass
都有很好的支持。
当然,最nice的还是写js
代码了,这也是我接下来要着重介绍的功能。
智能提示
因为之前微软推出了typescript语言,结合tsd
文件,用visual studio
写typescript
代码是相当爽的,智能提示的功能非常nb
。
这个功能理所应当也被vsc
继承了。
目前主流的前端类库/框架,包括node.js
及其模块/框架都有相应的tsd
文件,可以去DefinitelyTyped上找一下。
在项目中引入对应文件,就可以有智能提示了。
这里以angular
为例,使用步骤如下:
- 全局安装
tsd
,通过tsd
安装.d.ts
文件。这样会在项目下面生成.typings
目录,目录下面就是下载的.d.ts
文件,再写代码的时候就会有智能提示了。具体用法参考tsd用法。
npm install -g tsd
tsd query angular --action install
- 如果不想自己手工引入,也可以在
angular
变量后面按ctrl+k
,会有个灯泡图片,点击灯泡图片就会有对应提示,选择下载xx.d.ts
文件就可以了,编辑器会下载对应文件放在.typings
目录。
过程如下图:
再来个node.js
的:
说完智能提示,再说代码调试。
调试Node
之前写过文章介绍过node.js
的调试方案(Node.js调试)。从vsc
发布后,我就一直用它写代码,也是用它来调试node.js
代码。
使用方法也很简单,步骤如下:
- 打开要调试的文件,按
f5
,编辑器会生成一个launch.json
- 修改
launch.json
相关内容,主要是name
和program
字段,改成和你项目对应的 - 点击编辑器左侧长得像蜘蛛的那个按钮
- 点击左上角
DEBUG
后面的按钮,启动调试 - 打断点,尽情调试
过程如下图:
最后,再赠送彩蛋一个。
Node API 查看
在写node.js
代码的时候,有时会忘记某个模块中有哪些方法及其用法,经常要去官网翻一下api
文档。
这里介绍下怎么使用vsc
来搞定这一问题。
- 打开
vsc
控制台(Help > Toggle Developer Tools > Console
) - 在控制台写代码,查询模块方法。
过程如下图:
vsc
是用atom-shell
(现在叫electron)写的,这玩意和node-webkit
(现在叫nw.js)一样,都是把node.js
和chrome
结合起来的工具,所以可以这么使用。
不过vsc
使用到的node.js
模块并不多,比如引用util
和vm
等会报错,用node-webkit
就不会这样。
结语
vsc
和其他编辑器(sublime text
,atom
,webstorm
等)相比,某些方面还存在很多问题。对于一个前端工程师来说,它已经足够好了。
当然了,它在不断改进。等着它支持插件系统,支持vim
模式。
- DataTable排序结果的纠正
- web框架
- java:利用xpath删除xml中的空节点
- java array to list
- Python之Dijango的“坑” hostname, aliases, ipaddrs = gethostbyaddr(name) UnicodeDecodeError: 'utf-8' cod
- nGrinder 简易使用教程
- UI设计高效学习网站&工具,来自学长的收藏夹哦
- 安装git出现templates not found的问题
- 时间戳 时间
- jenkins 设置 gitlab web hooks
- 测试流程?项目管理流程?
- 学web前端开发写给新手的建议,超实用!
- 价值22万的5字母域名sanwa.com被启用
- Django admin 一些有用的设置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据结构 | TencentOS-tiny中队列、环形队列、优先级队列的实现及使用
- RTOS内功修炼记(六)—— 任务间通信为什么不用全局变量?
- 程序员必备基础:加签验签
- 【Rust日报】2020-07-16 j4rs,一个在 Rust 中调用 Java 代码的 Crate
- Vue.js 3 正式进入 RC 阶段
- FeignClient注解及参数问题---SpringCloud微服务
- Rust FFI 编程 - Rust导出共享库01
- 【每周一库】 see - An HTTP server for hosting static files
- 【Rust日报】2020-07-17 无船同志新博客:Shipping Const Generics in 2020
- SpringCloud--Config Server配置中心学习总结
- 【Rust日报】2020-07-18 提升ARM64 Linux平台支持到Tier-1
- SpringCloud+MyBatis(oracle)逆向工程自动生成代码
- JDK1.8的几个简单Lambda表达式
- 腾讯云直播开发日记 (一) 直播播放和观看
- Docker六脉神剑(二) 使用Docker构建lnmp开发环境