手把手教你怎么正确快速的部署一个TS Node.js项目!

正确快速的部署一个TS Node.js项目!

创建一个TS Node.js应用

如果你已经熟悉创建TS Node.js项目,可以直接跳到“部署发布应用”部分。

初始化Node.js项目

在我们团队,我们非常喜欢TS,并且在我们的所有新项目中都会使用TS,因此创建一个TS项目并不新鲜。

让我们从最基本的开始:

初始化一个Node.js项目,使用-y参数可以快速跳过一步一步的配置

安装express依赖,和用于TS开发的express的types类型文件

安装typescript作为开发依赖

mkdir myapp & cd myapp
npm init -y
npm install express @types/express --save
npm install typescript --save-dev

配置Typescript

创建一个typescript默认配置文件tsconfig.json

npx tsc --init

tsconfig.json文件中:

declaration 用于指定是否在编译完成后生成相应的*.d.ts文件,默认为false

outDir 定义TS编译后的目录,如果没有声明,默认编译后的文件位置将和ts源文件在同一位置

修改以下配置:

"compilerOptions":{
...
    "outDir": "./dist",
    "declaration": true,
}

创建项目入口文件

创建文件app.ts文件

import Express from 'express'
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';
let app = Express();
let PORT = 3000;

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

app.get('/',(req,res)=>{
    res.send('hello world!');
});

app.set('port', process.env.PORT || 3000);
let server = app.listen(app.get('port'), function () {
    debug('Express server listening...');
});

完成上述步骤后,我们的文件目录结构如下:

+node_modules

-package.json

-package-lock.json

-app.ts

-tsconfig.json

编译TS

我们下一步是构建和部署我们的TS Node.js应用,由于在生产环境中,我们不运行TS版本,而是运行编译后的JS。下面我们来编译项目

修改package.json文件增加以下命令

"scripts": {
    "tsc":"tsc",
    "start": "node dist/app.js"
},
npm run tsc

将会根据我们tsconfig.json的配置编译我们的项目,并输出到指定目录

npm run start

将会运行我们编译后的JS文件.

然后在本地进行测试,通过浏览器访问http://localhost:3000/,访问成功,接下来我们部署和发布我们的应用

部署发布应用

这里我们主要采用两种方法将编译后的TS项目分发部署到各种环境中

  • npm依赖包的形式
  • docker容器方式

NPM依赖包的形式

NPM生命周期钩子

一些特殊的生命周期钩子会在触发指定操作时被触发,这里我们将使用“prepare”钩子,该钩子会在执行npm publish命令发布到NPM之前被触发一次。所以我们可以这时编译的TS应用。

指定发布文件

通过 “files”字段我们可以去定义发布NPM包时应该包括哪些文件,如果省略该属性默认会为["*"],会上传所有文件。

下面是修改后的部分package.json

...
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "dist/app.js",
  "files": [
    "dist",
    "package.json",
    "package-lock.json"
  ],
  "scripts": {
    "tsc":"tsc",
    "prepare":"npm run tsc",
    "start": "node dist/app.js"
  },
...

在修改完package.json配置后,我们运行npm publish命令,将我们的应用发布到NPM上去

npm publish

发布成功后,可以看到npmjs上多了一个myapp包

Docker容器方式

要将我们的TS Node.js应用作为容器发布,我们要在项目根目录中创建docker配置文件Dockerfile。

下面我们一步步编写Dockerfile文件

  • 拷贝编译后的文件到容器内

  • 拷贝package.json和package-lock.json到容器内

  • 使用npm install安装依赖

  • 使用node build/app.js运行我们的应用

#Node版本

From node:16.15.1

ARG NODE_ENV=production

ENV NODE_ENV $NODE_ENV

copy ./dist /dist

copy ./package.json /package.json

copy ./package-lock.json /package-lock.json

RUN NODE_ENV=$NODE_ENV npm install

EXPOSE 3000

CMD ["node","dist/app.js"]

现在我们可以在根目录中构建docker镜像,运行命令

docker build --tag myapp:test

接着我们运行容器,使用命令来运行我们的应用,查看程序是否成功运行在3000端口

docker run -p 3000:3000 -it myapp:test

通过浏览器访问http://localhost:3000/,测试

总结

以上就是手把手教你怎么正确快速的部署一个TS Node.js项目!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值