主要技术栈:框架选择express,TS语言开发,TS在JS基础上增加了多种数据类型,包括其提供的接口编程、类型检查等特性,非常适合编写后端程序。

运行:ts-node + webpack + gulp

部署:webpack + pm2 / supervisor

全局安装Typescript即拥有一个编译器,可以使用tsc编译TS(ts后缀)为浏览器识别的原生js,使用”tsc -w”即可监听目录变化自动编译,源目录及输出目录等配置在项目根目录下tsconfig.json进行配置。

但是以上并不太适合实际开发中使用,我最终选择的方案为ts-node作为实例化编译器,开发模式下可在package.json配置”dev”: “ts-node-dev 相对目录启动文件路径”,安装devDependencies下依赖ts-node-dev,这样运行npm run dev即可启动项目并在终端查看实时代码错误检查。

编译生产使用webpack方案,webpack.config.js配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'use strict'

const path = require('path');

module.exports = {
mode:'development',
target:'node',
entry:'./src/main.ts', // 启动文件路径
output:{
path:path.resolve(__dirname,'dist'),
filename:'server.js',
},
module:{
rules:[
{
test: /\.tsx?$/,
use: [
{
loader: 'ts-loader',
options: {
// 加快编译速度
transpileOnly: true,
// 指定特定的ts编译配置,为了区分脚本的ts配置
configFile: path.resolve(__dirname, './tsconfig.json')
}
}
],
exclude: /node_modules/
},
]
}
}