5.1 通过nodeJS
1.创建一个NodeJS的package.json文件 初始化代码 npm init -y
2.添加Typescript:npm install typescript --save-dev (深入理解Typescript不知道这本书怎么搞的,网上看了根本就没有npm run install这个命令)
3.添加node.d.ts: npm install @types/node --save-dev
4.为TypeScript选项初始化一个tsconfig.json文件,并添加一些相关选项 npx tsc --init --rootDir src --outDir lib --esModuleInterop --resolveJsonModule --lib es6, dom --module commonjs
对应的配置如下
// 创建了一个tsconfig.json格式的文件
target: es2016
module: commonjs
lib: es6
outDir: lib
rootDir: src
strict: true
esModuleInterop: true
skipLibCheck: true
forceConsistentCasingInFileNames: true
现在就可以使用具有TypeScript的类型安全你和开发效率的所有内置的Node模块,比如import * as fs from 'fs'
关于实时编译和运行
ts-node: npm install ts-node --save-dev 使用ts-node来实时编译
添加nodemon: npm install nodemon --save-dev 只要对应的运行文件改变就会调用ts-node
给package.json添加一个script目标:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "npm run build:live",
"build": "tsc -p .",
"build:live": "cross-env nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts"
},
另外现在执行npm start也可能会报错,说ts-node不是内部或外部命令,也不是可运行的程序。这一般是windows兼容性问题导致的,还需要安装cross-env来解决,npm install -g cross-env --save-dev后再对应的build:live中的前面添加cross-env即可。
另外还需要注意,整个项目在命名的时候一定别用驼峰命名,还是用短横线来命名,这是因为package.json文件中的name本身在js/ts找对应的文件夹的时候大小写是不作区分的。