TS Node.js 프로젝트를 정확하고 빠르게 배포하는 방법은 무엇입니까? 다음 문서에서는 몇 분 안에 TS Node.js 애플리케이션을 배포하는 방법을 알려 드리겠습니다. 도움이 되기를 바랍니다.
풀 스택 개발자로서 프로젝트를 만드는 것은 매우 흥미롭습니다. 아키텍처를 설계하고, 브레인스토밍하고, 개발할 수 있지만 개발이 완료된 후에는 애플리케이션을 배포하거나 출시해야 합니다. 그렇다면 TS Node.js 프로젝트를 정확하고 빠르게 배포하는 방법을 오늘 완료해 보겠습니다. [추천 학습: "nodejs Tutorial"]
TS Node.js 프로젝트 생성에 이미 익숙하다면 "애플리케이션 배포 및 게시"로 바로 이동할 수 있습니다. section
우리 팀에서는 TS를 매우 좋아하고 모든 새 프로젝트에서 TS를 사용하므로 TS 프로젝트를 만드는 것은 새로운 것이 아닙니다.
가장 기본적인 것부터 시작해 보겠습니다.
npm init
Node.js 프로젝트를 초기화하고 -y
매개변수를 사용하여 단계별 단계를 빠르게 건너뜁니다. 단계 구성npm init
初始化一个Node.js项目,使用-y
参数可以快速跳过一步一步的配置
npm install express @types/express
安装express依赖,和用于TS开发的express的types类型文件
npm install typescript --save-dev
安装typescript作为开发依赖
mkdir my-app && cd my-app npm init -y npm install express @types/express --save npm install typescript --save-dev
npx tsc --init
将创建一个typescript默认配置文件tsconfig.jsondeclaration
用于指定是否在编译完成后生成相应的*.d.ts文件,默认为falseoutdir
定义TS编译后的目录,如果没有声明,默认编译后的文件位置将和ts源文件在同一位置运行命令
npx tsc --init
修改以下配置
"compilerOptions": { ... "outDir": "dist", // 编译后输出目录 "declaration": true // 生成 d.ts }
创建server.ts
文件
import express from 'express' const app = express() const PORT = 3000 app.use(express.json()) app.get('/', (req, res) => { res.send(‘Hello World!’) }) app.listen(PORT, () => { console.log(`Server is listening on port ${PORT}`) })
完成上述步骤后,我们的文件目录结构如下
. ├── node_modules ├── package-lock.json ├── package.json ├── server.ts └── tsconfig.json
我们下一步是构建和部署我们的TS Node.js应用,由于在生产环境中,我们不运行TS版本,而是运行编译后的JS。下面我们来编译项目
修改package.json文件增加以下命令
npm run tsc
将会根据我们tsconfig.json的配置编译我们的项目,并输出到指定目录
npm run start:prod
将会运行我们编译后的JS文件
"scripts": { "tsc": "tsc", "start:prod": "node dist/server.js" }
然后在本地进行测试
npm run tsc npm run start:prod # 服务启动成功,运行端口:3000
通过浏览器访问http://localhost:3000/,访问成功,接下来我们部署和发布我们的应用
这里我们主要采用两种方法将编译后的TS项目分发部署到各种环境中
一些特殊的生命周期钩子会在触发指定操作时被触发,这里我们将使用“prepare”钩子,该狗子会在执行npm publish命令发布到NPM之前被触发一次。所以我们可以这时编译的TS应用。
通过 “files”字段我们可以去定义发布NPM包时应该包括哪些文件,如果省略该属性默认会为["*"],会上传所有文件。
下面是修改后的package.json
"name": "my-app-xiaoshuai", // 我们发布到NPM上的名字 "main": "dist/server.js", // 修改入口文件地址 "types": "dist/server.d.ts", // 指定TS类型文件 "files": [ "dist", "package.json", "package-lock.json", "README.md" ], "scripts": { "tsc": "tsc", "prepare": "npm run tsc" // 编辑typescript }
在修改完package.json配置后,我们运行npm publish命令,将我们的应用发布到NPM上去
npm publish
输出
发布成功后,可以看到npmjs上多了一个my-app-xiaoshuai
包
要将我们的TS Node.js应用作为容器发布,我们要在项目根目录中创建docker配置文件Dockerfile。
下面我们一步步编写Dockerfile文件
拷贝编译后的文件到容器内
拷贝package.json和package-lock.json到容器内
使用 npm install
安装依赖
使用 node build/server.js
npm install express @types/express
TS 개발을 위한 Express 종속성 및 Express 유형 파일 설치🎜🎜🎜npm install typescript -- save- dev
개발 종속성으로 TypeScript 설치🎜# Node 版本 FROM node:14.18.0-alpine 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/server.js"]
npx tsc -- init
는 typescript 기본 구성 파일 tsconfig.json을 생성합니다.🎜선언
은 컴파일이 완료된 후 해당 *.d.ts 파일을 생성할지 여부를 지정하는 데 사용됩니다. is false🎜outdir
TS 컴파일 디렉터리를 정의합니다. 선언하지 않으면 기본 컴파일 파일 위치는 ts 소스 파일과 동일한 위치에 있게 됩니다.docker build --tag my-app:test .🎜다음 구성 수정🎜
docker run -p 3000:3000 -it my-app:test # 服务启动成功,运行端口:3000
server.ts
파일 생성🎜rrreee🎜After 위 단계를 완료하면 파일 디렉터리 구조는 다음과 같습니다🎜rrreeenpm run tsc
는 tsconfig.json의 구성에 따라 프로젝트를 컴파일하고 다음으로 출력합니다. 지정된 디렉토리🎜🎜🎜npm run start:prod
는 컴파일된 JS 파일🎜rrreee🎜을 실행한 다음 로컬에서 테스트합니다🎜rrreee🎜를 통해 http에 액세스합니다. 브라우저 ://localhost:3000/, 액세스에 성공하면 애플리케이션🎜🎜🎜node build/server.js
를 사용하여 애플리케이션을 실행하세요🎜# Node 版本 FROM node:14.18.0-alpine 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/server.js"]
现在我们可以在根目录中构建docker镜像,运行 docker build --tag my-app:test .
命令
docker build --tag my-app:test .
成功后输出如下
接着我们运行容器,使用docker run -p 3000:3000 -it my-app:test
命令来运行我们的应用,可以看到程序成功运行在3000端口
docker run -p 3000:3000 -it my-app:test # 服务启动成功,运行端口:3000
通过浏览器访问http://localhost:3000/,访问成功
https://github.com/cmdfas/ts-node-express-deploy
今天我们介绍了创建TS Node.js项目和部署它的基础知识,希望对大家有所帮助,能够用在现在或未来的项目中。
更多编程相关知识,请访问:编程视频!!
위 내용은 TS Node.js 프로젝트를 정확하고 빠르게 배포하는 방법을 단계별로 가르쳐주세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!