Inhaltsverzeichnis
Erstellen Sie eine TS Node.js-Anwendung
Node .js-Projekt initialisieren:
TS配置
创建项目入口文件
编译TS
部署发布应用
NPM依赖包的形式
NPM生命周期钩子
指定发布文件
npm publish
Docker容器方式
🎜NPM-Lebenszyklus-Hooks🎜
🎜Veröffentlichungsdateien angeben🎜
🎜npm Publish🎜
源码
总结
Heim Web-Frontend js-Tutorial Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

Oct 14, 2021 am 10:18 AM
node.js ts typescript 前端

Wie stellt man ein TS-Projekt Node.js richtig und schnell bereit? Im folgenden Artikel erfahren Sie, wie Sie in wenigen Minuten eine TS Node.js-Anwendung bereitstellen. Ich hoffe, er wird Ihnen hilfreich sein!

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

Als Full-Stack-Entwickler ist es sehr interessant, Projekte zu erstellen. Sie können die Architektur entwerfen, ein Brainstorming durchführen und entwickeln, aber nachdem die Entwicklung abgeschlossen ist, müssen wir die Anwendung bereitstellen oder veröffentlichen. Wie stellt man also ein TS Node.js-Projekt richtig und schnell bereit? Lassen Sie es uns noch heute erledigen. [Empfohlenes Lernen: „nodejs Tutorial“]

Erstellen Sie eine TS Node.js-Anwendung

Wenn Sie bereits mit der Erstellung eines TS Node.js-Projekts vertraut sind, können Sie direkt zum Abschnitt „Anwendung bereitstellen und veröffentlichen“ springen. Abschnitt

Node .js-Projekt initialisieren:

In unserem Team lieben wir TS sehr und verwenden TS in allen unseren neuen Projekten, daher ist das Erstellen eines TS-Projekts nichts Neues.

Beginnen wir mit dem Grundlegendsten:

  • npm init Initialisieren Sie ein Node.js-Projekt, verwenden Sie den Parameter -y, um die Schritt-für-Schritt-Anleitung schnell zu überspringen. Schrittkonfigurationnpm 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
Nach dem Login kopieren

TS配置

  • npx tsc --init 将创建一个typescript默认配置文件tsconfig.json
  • declaration 用于指定是否在编译完成后生成相应的*.d.ts文件,默认为false
  • outdir 定义TS编译后的目录,如果没有声明,默认编译后的文件位置将和ts源文件在同一位置

运行命令

 npx tsc --init
Nach dem Login kopieren

修改以下配置

"compilerOptions": {
  ...
  "outDir": "dist", // 编译后输出目录
  "declaration": true // 生成 d.ts
}
Nach dem Login kopieren

创建项目入口文件

创建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}`)
})
Nach dem Login kopieren

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

.
├── node_modules
├── package-lock.json
├── package.json
├── server.ts
└── tsconfig.json
Nach dem Login kopieren

编译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"
}
Nach dem Login kopieren

然后在本地进行测试

npm run tsc
npm run start:prod

# 服务启动成功,运行端口:3000
Nach dem Login kopieren

通过浏览器访问http://localhost:3000/,访问成功,接下来我们部署和发布我们的应用

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

部署发布应用

这里我们主要采用两种方法将编译后的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
}
Nach dem Login kopieren

npm publish

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

npm publish
Nach dem Login kopieren

输出

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

发布成功后,可以看到npmjs上多了一个my-app-xiaoshuai

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

Docker容器方式

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

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

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

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

  • 使用 npm install安装依赖

  • 使用 node build/server.js

  • 🎜npm install express @types/express Express-Abhängigkeiten und Express-Typdateien für die TS-Entwicklung installieren🎜🎜🎜npm install typescript – speichern- dev Typoskript als Entwicklungsabhängigkeit installieren🎜
# 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"]
Nach dem Login kopieren
Nach dem Login kopieren

🎜TS-Konfiguration🎜🎜
    🎜npx tsc -- init erstellt eine Typoskript-Standardkonfigurationsdatei tsconfig.json🎜declaration wird verwendet, um anzugeben, ob die entsprechende *.d.ts-Datei nach Abschluss der Kompilierung generiert werden soll ist falsch< /li>🎜outdir Definiert das TS-kompilierte Verzeichnis. Wenn nicht deklariert, befindet sich der Standardspeicherort der kompilierten Datei am selben Speicherort wie die TS-Quelldatei
🎜 Führen Sie den Befehl aus: 🎜
docker build --tag my-app:test .
Nach dem Login kopieren
Nach dem Login kopieren
. 🎜Ändern Sie die folgende Konfiguration Wenn Sie die obigen Schritte ausführen, ist unser Dateiverzeichnis wie folgt aufgebaut🎜
docker run -p 3000:3000 -it my-app:test
# 服务启动成功,运行端口:3000
Nach dem Login kopieren
Nach dem Login kopieren

🎜Kompilieren Sie TS🎜🎜🎜Unser nächster Schritt besteht darin, unsere TS Node.js-Anwendung zu erstellen und bereitzustellen In der Produktionsumgebung führen wir nicht die TS-Version aus, sondern das kompilierte JS. Jetzt kompilieren wir das Projekt🎜🎜Ändern Sie die Datei package.json und fügen Sie den folgenden Befehl hinzu🎜🎜🎜🎜npm run tsc kompiliert unser Projekt entsprechend der Konfiguration unserer tsconfig.json und gibt es an die aus Das angegebene Verzeichnis🎜< /li>🎜🎜npm run start:prod führt unsere kompilierte JS-Datei aus🎜rrreee🎜und testet sie dann lokal🎜rrreee🎜Zugriff auf http über Browser ://localhost:3000/, der Zugriff ist erfolgreich, dann stellen wir unsere Anwendung bereit und veröffentlichen sie🎜🎜Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!🎜

🎜Anwendungen bereitstellen und veröffentlichen🎜🎜🎜Hier verwenden wir hauptsächlich zwei Methoden, um den kompilierten TS zu kompilieren Projekt Verteilen und in verschiedenen Umgebungen bereitstellen🎜
    🎜npm-Abhängigkeitspaketformular🎜Docker-Container-Methode

🎜NPM-Abhängigkeitspaketformular Formular 🎜🎜

🎜NPM-Lebenszyklus-Hooks🎜

🎜Einige spezielle Lebenszyklus-Hooks werden ausgelöst, wenn der angegebene Vorgang ausgelöst wird. Hier verwenden wir den Hook „Vorbereiten“. Dieser Hund wird einmal ausgelöst, bevor der npm-Publish-Befehl zum Veröffentlichen in NPM ausgeführt wird. Daher können wir die TS-Anwendung zu diesem Zeitpunkt kompilieren. 🎜

🎜Veröffentlichungsdateien angeben🎜

🎜Über das Feld „Dateien“ können wir definieren, welche Dateien beim Veröffentlichen des NPM-Pakets enthalten sein sollen Der Standardwert ist [" *"], alle Dateien werden hochgeladen. 🎜🎜Das Folgende ist die geänderte package.json🎜rrreee

🎜npm Publish🎜

🎜Nachdem wir die package.json-Konfiguration geändert haben, führen wir den Befehl npm Publish aus, um unsere zu aktualisieren Veröffentlichen Sie die Anwendung auf NPM🎜rrreee🎜Output🎜🎜 Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!🎜🎜Nach erfolgreicher Veröffentlichung können Sie sehen, dass es auf npmjs ein zusätzliches my-app-xiaoshuai-Paket gibt🎜🎜Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!🎜

🎜Docker-Container Methode🎜🎜 🎜Um unsere TS Node.js-Anwendung als Container zu veröffentlichen, erstellen wir eine Docker-Konfigurationsdatei Dockerfile im Projektstammverzeichnis. 🎜🎜Lassen Sie uns die Docker-Datei Schritt für Schritt schreiben🎜🎜🎜🎜Kopieren Sie die kompilierte Datei in den Container🎜🎜🎜Kopieren Sie package.json und package-lock.json in den Container🎜🎜🎜Verwenden Sie <-Code >npm installAbhängigkeiten installieren🎜🎜🎜Verwenden Sie node build/server.js, um unsere Anwendung auszuführen🎜
# 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"]
Nach dem Login kopieren
Nach dem Login kopieren

现在我们可以在根目录中构建docker镜像,运行 docker build --tag my-app:test . 命令

docker build --tag my-app:test .
Nach dem Login kopieren
Nach dem Login kopieren

成功后输出如下

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

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

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

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

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!

源码

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

总结

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

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

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie ein TS Node.js-Projekt richtig und schnell bereitstellen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools Mar 16, 2024 pm 12:09 PM

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools In der heutigen Zeit der rasanten Entwicklung des Internets ist die Front-End-Entwicklung immer wichtiger geworden. Da Benutzer immer höhere Anforderungen an das Erlebnis von Websites und Anwendungen stellen, müssen Frontend-Entwickler effizientere und flexiblere Tools verwenden, um reaktionsfähige und interaktive Schnittstellen zu erstellen. Als zwei wichtige Technologien im Bereich der Front-End-Entwicklung können PHP und Vue.js in Kombination als perfekte Waffe bezeichnet werden. In diesem Artikel geht es um die Kombination von PHP und Vue sowie um detaillierte Codebeispiele, die den Lesern helfen sollen, diese beiden besser zu verstehen und anzuwenden

Häufig gestellte Fragen von Front-End-Interviewern Häufig gestellte Fragen von Front-End-Interviewern Mar 19, 2024 pm 02:24 PM

In Front-End-Entwicklungsinterviews decken häufige Fragen ein breites Themenspektrum ab, darunter HTML/CSS-Grundlagen, JavaScript-Grundlagen, Frameworks und Bibliotheken, Projekterfahrung, Algorithmen und Datenstrukturen, Leistungsoptimierung, domänenübergreifende Anfragen, Front-End-Engineering, Designmuster sowie neue Technologien und Trends. Interviewerfragen sollen die technischen Fähigkeiten, die Projekterfahrung und das Verständnis des Kandidaten für Branchentrends beurteilen. Daher sollten Kandidaten in diesen Bereichen umfassend vorbereitet sein, um ihre Fähigkeiten und Fachkenntnisse unter Beweis zu stellen.

Erfahrungsaustausch in der C#-Entwicklung: Fähigkeiten zur kollaborativen Front-End- und Back-End-Entwicklung Erfahrungsaustausch in der C#-Entwicklung: Fähigkeiten zur kollaborativen Front-End- und Back-End-Entwicklung Nov 23, 2023 am 10:13 AM

Als C#-Entwickler umfasst unsere Entwicklungsarbeit in der Regel die Front-End- und Back-End-Entwicklung. Mit der Weiterentwicklung der Technologie und der zunehmenden Komplexität von Projekten wird die gemeinsame Entwicklung von Front-End und Back-End immer wichtiger und komplexer. In diesem Artikel werden einige kollaborative Front-End- und Back-End-Entwicklungstechniken vorgestellt, um C#-Entwicklern dabei zu helfen, die Entwicklungsarbeit effizienter abzuschließen. Nach der Festlegung der Schnittstellenspezifikationen ist die gemeinsame Entwicklung von Front-End und Backend untrennbar mit dem Zusammenspiel der API-Schnittstellen verbunden. Um den reibungslosen Ablauf der kollaborativen Front-End- und Back-End-Entwicklung sicherzustellen, ist es am wichtigsten, gute Schnittstellenspezifikationen zu definieren. Bei der Schnittstellenspezifikation handelt es sich um den Namen der Schnittstelle

Ist Django Front-End oder Back-End? Hör zu! Ist Django Front-End oder Back-End? Hör zu! Jan 19, 2024 am 08:37 AM

Django ist ein in Python geschriebenes Webanwendungs-Framework, das Wert auf schnelle Entwicklung und saubere Methoden legt. Obwohl Django ein Web-Framework ist, müssen Sie zur Beantwortung der Frage, ob Django ein Front-End oder ein Back-End ist, ein tiefes Verständnis der Konzepte von Front-End und Back-End haben. Das Front-End bezieht sich auf die Schnittstelle, mit der Benutzer direkt interagieren, und das Back-End bezieht sich auf serverseitige Programme. Sie interagieren mit Daten über das HTTP-Protokoll. Wenn das Front-End und das Back-End getrennt sind, können die Front-End- und Back-End-Programme unabhängig voneinander entwickelt werden, um Geschäftslogik bzw. interaktive Effekte sowie den Datenaustausch zu implementieren.

Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Mar 28, 2024 pm 01:06 PM

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung großer Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tatsächlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte eröffnen. In diesem Artikel wird die Möglichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden häufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberflächen verwendet

Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bewältigen kann! Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bewältigen kann! Jan 19, 2024 am 08:52 AM

Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bewältigen kann! Django ist ein effizientes und skalierbares Webanwendungs-Framework. Es unterstützt mehrere Webentwicklungsmodelle, einschließlich MVC und MTV, und kann problemlos hochwertige Webanwendungen entwickeln. Django unterstützt nicht nur die Back-End-Entwicklung, sondern kann auch schnell Front-End-Schnittstellen erstellen und durch die Vorlagensprache eine flexible Ansichtsanzeige erreichen. Django kombiniert Front-End-Entwicklung und Back-End-Entwicklung zu einer nahtlosen Integration, sodass sich Entwickler nicht auf das Lernen spezialisieren müssen

Kombination von Golang- und Front-End-Technologie: Entdecken Sie, welche Rolle Golang im Front-End-Bereich spielt Kombination von Golang- und Front-End-Technologie: Entdecken Sie, welche Rolle Golang im Front-End-Bereich spielt Mar 19, 2024 pm 06:15 PM

Kombination von Golang und Front-End-Technologie: Um zu untersuchen, welche Rolle Golang im Front-End-Bereich spielt, sind spezifische Codebeispiele erforderlich. Mit der rasanten Entwicklung des Internets und mobiler Anwendungen ist die Front-End-Technologie immer wichtiger geworden. Auch in diesem Bereich kann Golang als leistungsstarke Back-End-Programmiersprache eine wichtige Rolle spielen. In diesem Artikel wird untersucht, wie Golang mit Front-End-Technologie kombiniert wird, und sein Potenzial im Front-End-Bereich anhand spezifischer Codebeispiele demonstriert. Die Rolle von Golang im Front-End-Bereich ist effizient, prägnant und leicht zu erlernen

Was ist ein modulares Front-End-ESM? Was ist ein modulares Front-End-ESM? Feb 25, 2024 am 11:48 AM

Was ist Front-End-ESM? Spezifische Codebeispiele sind erforderlich. Bei der Front-End-Entwicklung bezieht sich ESM auf ECMAScriptModules, eine modulare Entwicklungsmethode, die auf der ECMAScript-Spezifikation basiert. ESM bietet viele Vorteile, wie z. B. eine bessere Codeorganisation, Isolierung zwischen Modulen und Wiederverwendbarkeit. In diesem Artikel werden die grundlegenden Konzepte und die Verwendung von ESM vorgestellt und einige spezifische Codebeispiele bereitgestellt. Das Grundkonzept von ESM In ESM können wir den Code in mehrere Module unterteilen, und jedes Modul stellt einige Schnittstellen für andere Module bereit

See all articles