91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確快速的部署一個TS Node.js項目

發布時間:2021-10-15 10:38:05 來源:億速云 閱讀:228 作者:iii 欄目:web開發

本篇內容主要講解“如何正確快速的部署一個TS Node.js項目”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何正確快速的部署一個TS Node.js項目”吧!

如何正確快速的部署一個TS Node.js項目

作為全棧開發者,創建項目是很有趣的,可以設計架構,頭腦風暴,開發,但在開發結束之后呢,我們就要部署或發布應用。那么如何正確快速的部署一個TS Node.js項目呢,今天我們來搞定它。

創建一個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項目

到此,相信大家對“如何正確快速的部署一個TS Node.js項目”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

育儿| 十堰市| 罗田县| 金沙县| 华池县| 东兰县| 义乌市| 崇义县| 温宿县| 抚远县| 廉江市| 工布江达县| 通州市| 都江堰市| 仙居县| 于田县| 吉水县| 乐业县| 伊宁县| 汽车| 论坛| 西贡区| 观塘区| 合川市| 柞水县| 奉节县| 大余县| 宣化县| 沙雅县| 田阳县| 龙游县| 墨竹工卡县| 遂平县| 缙云县| 九寨沟县| 枣阳市| 平泉县| 南宁市| 宝应县| 若尔盖县| 肇源县|