搜尋
首頁web前端js教程手把手教你怎麼正確快速的部署一個TS Node.js專案!

怎麼正確快速的部署一個TS Node.js專案?以下這篇文章就來教大家怎麼在幾分鐘內部署一個TS Node.js應用,希望對大家有幫助!

手把手教你怎麼正確快速的部署一個TS Node.js專案!

作為全端開發者,創建專案是很有趣的,可以設計架構,頭腦風暴,開發,但在開發結束之後呢,我們就要部署或發布應用。那麼如何正確快速的部署一個TS Node.js專案呢,今天我們來搞定它。 【推薦學習:《nodejs 教學》】

建立一個TS Node.js應用程式

如果你已經熟悉創建TS Node.js項目,可以直接跳到「部署發布應用程式」部分

初始化Node.js專案:

在我們團隊,我們非常喜歡TS,並且在我們的所有新專案中都會使用TS,因此建立TS專案並不新鮮。

讓我們從最基本的開始:

  • 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

TS配置

  • npx tsc --init 將建立一個typescript預設設定檔tsconfig.json
  • declaration 用於指定是否在編譯完成後產生相應的*.d.ts文件,預設為false
  • outdir 定義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

##我們下一步是建置和部署我們的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 Node.js專案!

部署發布應用程式

這裡我們主要採用兩種方法將編譯後的TS專案分發部署到各種環境中

    npm依賴套件的形式
  • docker容器方式

NPM依賴套件的形式

NPM生命週期鉤子

一些特殊的生命週期鉤子會在觸發指定操作時被觸發,這裡我們將使用「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
}

npm publish

在修改完package.json設定後,我們執行npm publish指令,將我們的應用程式發佈到NPM上去

npm publish

輸出

手把手教你怎麼正確快速的部署一個TS Node.js專案!

#發布成功後,可以看到npmjs上多了一個

my-app- xiaoshuai套件

手把手教你怎麼正確快速的部署一個TS Node.js專案!

Docker容器方式

要將我們的TS Node.js應用程式作為容器發布,我們要在專案根目錄中建立docker設定檔Dockerfile。

下面我們一步一步寫Dockerfile檔案

  • 拷貝編譯後的檔案到容器內

  • 拷貝package.json和package-lock.json到容器內

  • 使用

    npm install安裝依賴

  • 使用

    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 .

成功后输出如下

手把手教你怎麼正確快速的部署一個TS Node.js專案!

接着我们运行容器,使用docker run -p 3000:3000 -it my-app:test命令来运行我们的应用,可以看到程序成功运行在3000端口

docker run -p 3000:3000 -it my-app:test
# 服务启动成功,运行端口:3000

通过浏览器访问http://localhost:3000/,访问成功

手把手教你怎麼正確快速的部署一個TS Node.js專案!

源码

https://github.com/cmdfas/ts-node-express-deploy

总结

今天我们介绍了创建TS Node.js项目和部署它的基础知识,希望对大家有所帮助,能够用在现在或未来的项目中。

更多编程相关知识,请访问:编程视频!!

以上是手把手教你怎麼正確快速的部署一個TS Node.js專案!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:掘金社区。如有侵權,請聯絡admin@php.cn刪除
JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具