使用npm初始化项目
npm init -y
初始化项目后,可以得到一个基本的package.json文件,大概长这个样子:
{
"name": "environment",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
安装依赖
全局依赖安装
npm i -g typescript ts-node
typescript是ts的基础支持,并会产生一个tsc命令,进行ts=>js单文件转换。ts-node相当于一个ts版的nodejs
我这里进行npm-g的安装时,需要加sudo。如果你那边也提示权限不足,也可以加sudo试试
运行项目
写一个简单的测试脚本test.ts
const output: string = 'Hello World'
console.log(output)
运行ts-node test.ts:
% ts-node test.ts
Hello World
项目工程配置
去差异话,使用npm test运行项目测试脚本
"scripts": {
"test": "ts-node test"
}
执行测试脚本:
% npm test
> environment@1.0.0 test /ts-learn/environment
> ts-node test
Hello World
工程层面的另一种ts支持方案
刚才提到了,如果我们在项目中运行:
tsc test.ts
那么typescript引擎将会针对项目中的所有ts文件,生成一个对应的js文件(默认为commonjs模块格式)。
根据这个特性,我们可以通过更改package.json流程控制:先生成test.js,而后让node运行test.js,来实现node对ts的伪支持。
"scripts": {
"test": "tsc test.ts && node test"
}
或者使用pre/post控制流程
"scripts": {
"pretest": "tsc test.ts",
"test": "node test"
}
运行npm test之后,可以看到产生了一个test.js文件:
var output = 'Hello World';
console.log(output);
这种方式的优点是省去了ts-node这个依赖,环境更纯粹。缺点是会产生额外的js文件,尤其是ts文件较多时,处理比较麻烦。
就酱。