TypeScript 同 NodeJS
TypeScript 自成立以来就有了对 NodeJS 的一等支持。下面是如何快速开始一个 NodeJS 项目:
注意:这里的很多步骤实际上只是普通地练习 nodejs 开始步骤
- 开始一个 nodejs 项目
package.json
。快速的方法:npm init -y
- 添加 TypeScript(
npm install typescript --save-dev
) - 添加
node.d.ts
(npm install @types/node --save-dev
) - 为 TypeScript 选项初始化一个
tsconfig.json
(node ./node_modules/.bin/tsc --init
)
就是这样!启动你的 IDE(例如 alm -o
)然后玩耍起来。现在你可以使用所有以 node 模块构建的东西(例 import fs = require('fs')
),并且享受 TypeScript 的安全性和开发者人体工程学。
另外:即时编译 + 运行
- 添加
ts-node
,我们将会使用它来在 node 中进行即时编译 + 运行(npm install ts-node --save-dev
) - 添加
nodemon
,它会在一个文件改变的时候调用ts-node
(npm install nodemon --save-dev
)
现在只需要在你的 package.json
中基于你的应用入口如 index.ts
添加一个 script
目标即可:
"scripts": {
"start": "npm run build:live",
"build:live": "nodemon --exec ./node_modules/.bin/ts-node -- ./index.ts"
},
所以现在你可以运行npm start
并且当你编辑 index.ts
时:
- nodemon 重新运行它的命令(ts-node)
- ts-node 自动获取 tsconfig.json 和当前安装的 typescript 版本转换编译
- ts-node 通过 node 运行输出的 javascript。
创建 TypeScript node 模块
你甚至可以使用其他以 TypeScript 编写的 node 模块。作为一个模块开发者,一件你应该真正去做的事是:
- 你应该在你的
package.json
中拥有一个typings
域(例如:src/index
)类似于main
域来指向默认的 TypeScript 定义出口。例如package.json
for csx。
示例包:npm install csx
来安装 csx,使用方式:import csx = require('csx')
。
另外
这样的 NPM 模块在 browserify(使用 tsify)或者 webpack(使用 ts-loader)也工作的很好。