Table des matières
Créer une application TS Node.js
Initialiser le projet Node .js :
TS配置
创建项目入口文件
编译TS
部署发布应用
NPM依赖包的形式
NPM生命周期钩子
指定发布文件
npm publish
Docker容器方式
🎜Hooks de cycle de vie NPM🎜
🎜Spécifier les fichiers de publication🎜
🎜npm submit🎜
源码
总结
Maison interface Web js tutoriel Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

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

Comment déployer correctement et rapidement un projet TS Node.js ? L'article suivant vous apprendra comment déployer une application TS Node.js en quelques minutes. J'espère qu'il vous sera utile !

Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

En tant que développeur full-stack, il est très intéressant de créer des projets. Vous pouvez concevoir l'architecture, réfléchir et développer, mais une fois le développement terminé, nous devons déployer ou publier l'application. Alors, comment déployer un projet TS Node.js correctement et rapidement ? [Apprentissage recommandé : "Tutoriel Nodejs"]

Créer une application TS Node.js

Si vous êtes déjà familiarisé avec la création d'un projet TS Node.js, vous pouvez accéder directement à "Déployer et publier une application". section

Initialiser le projet Node .js :

Dans notre équipe, nous aimons beaucoup TS et utilisons TS dans tous nos nouveaux projets, donc créer un projet TS n'est pas nouveau.

Commençons par le plus basique :

  • npm init Initialisez un projet Node.js, utilisez le paramètre -y pour sauter rapidement l'étape par étape. étape de configurationnpm 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
Copier après la connexion

TS配置

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

运行命令

 npx tsc --init
Copier après la connexion

修改以下配置

"compilerOptions": {
  ...
  "outDir": "dist", // 编译后输出目录
  "declaration": true // 生成 d.ts
}
Copier après la connexion

创建项目入口文件

创建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}`)
})
Copier après la connexion

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

.
├── node_modules
├── package-lock.json
├── package.json
├── server.ts
└── tsconfig.json
Copier après la connexion

编译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"
}
Copier après la connexion

然后在本地进行测试

npm run tsc
npm run start:prod

# 服务启动成功,运行端口:3000
Copier après la connexion

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

Apprenez étape par étape comment déployer correctement et rapidement un projet 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
}
Copier après la connexion

npm publish

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

npm publish
Copier après la connexion

输出

Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

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

Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

Docker容器方式

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

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

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

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

  • 使用 npm install安装依赖

  • 使用 node build/server.js

  • 🎜npm install express @types/express Installer les dépendances express et les fichiers de type express pour le développement TS🎜🎜🎜npm install typescript -- save- dev Installer TypeScript en tant que dépendance de développement🎜
# 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"]
Copier après la connexion
Copier après la connexion

🎜Configuration TS🎜🎜
    🎜npx tsc -- init créera un fichier de configuration par défaut dactylographié tsconfig.json🎜declaration est utilisé pour spécifier s'il faut générer le fichier *.d.ts correspondant une fois la compilation terminée. is false< /li>🎜outdir Définit le répertoire compilé TS S'il n'est pas déclaré, l'emplacement du fichier compilé par défaut sera au même emplacement que le fichier source ts
🎜 Exécutez la commande🎜
docker build --tag my-app:test .
Copier après la connexion
Copier après la connexion
🎜Modifiez la configuration suivante🎜
docker run -p 3000:3000 -it my-app:test
# 服务启动成功,运行端口:3000
Copier après la connexion
Copier après la connexion

🎜Créez le fichier d'entrée du projet🎜🎜🎜Créez le fichier server.ts🎜rrreee🎜Après en complétant les étapes ci-dessus, notre répertoire de fichiers La structure est la suivante🎜rrreee

🎜Compiler TS🎜🎜🎜Notre prochaine étape consiste à créer et déployer notre application TS Node.js depuis dans. Dans l'environnement de production, nous n'exécutons pas la version TS, mais devons exécuter le JS compilé. Compilons maintenant le projet🎜🎜Modifiez le fichier package.json et ajoutez la commande suivante🎜🎜🎜🎜npm run tsc compilera notre projet selon la configuration de notre tsconfig.json et le sortira sur le répertoire spécifié🎜< /li>🎜🎜npm run start:prod exécutera notre fichier JS compilé🎜rrreee🎜puis le testera localement🎜rrreee🎜accéder à http via le navigateur ://localhost:3000/, l'accès est réussi, puis nous déployons et publions notre application🎜🎜Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !🎜

🎜Déployer et publier des applications🎜🎜🎜Ici, nous utilisons principalement deux méthodes pour compiler le TS compilé projet Distribuer et déployer dans divers environnements🎜
    🎜Formulaire de package de dépendances npm🎜Méthode de conteneur Docker

🎜Formulaire de package de dépendances NPM Formulaire 🎜🎜

🎜Hooks de cycle de vie NPM🎜

🎜Certains hooks de cycle de vie spéciaux seront déclenchés lorsque l'opération spécifiée est déclenchée, ici nous utiliserons le hook "préparer", Ce chien sera déclenché une fois avant d'exécuter la commande npm submit pour publier sur NPM. Nous pouvons donc compiler l'application TS à ce moment-là. 🎜

🎜Spécifier les fichiers de publication🎜

🎜Grâce au champ "fichiers", nous pouvons définir quels fichiers doivent être inclus lors de la publication du package NPM. Si cet attribut est omis, le. la valeur par défaut sera [" *"], tous les fichiers seront téléchargés. 🎜🎜Ce qui suit est le package.json modifié🎜rrreee

🎜npm submit🎜

🎜Après avoir modifié la configuration package.json, nous exécutons la commande npm submit pour mettre à jour notre Publiez l'application sur NPM🎜rrreee🎜Output🎜🎜 Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !🎜🎜Une fois la sortie réussie, vous pouvez voir qu'il existe un package my-app-xiaoshuai supplémentaire sur npmjs🎜🎜Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !🎜

🎜Conteneur Docker méthode🎜🎜 🎜Pour publier notre application TS Node.js en tant que conteneur, nous créons un fichier de configuration docker Dockerfile dans le répertoire racine du projet. 🎜🎜Écrivons le Dockerfile étape par étape🎜🎜🎜🎜Copiez le fichier compilé dans le conteneur🎜🎜🎜Copiez package.json et package-lock.json dans le conteneur🎜🎜🎜Utilisez < code >npm installInstaller les dépendances🎜🎜🎜Utilisez node build/server.js pour exécuter notre application🎜
# 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"]
Copier après la connexion
Copier après la connexion

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

docker build --tag my-app:test .
Copier après la connexion
Copier après la connexion

成功后输出如下

Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

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

docker run -p 3000:3000 -it my-app:test
# 服务启动成功,运行端口:3000
Copier après la connexion
Copier après la connexion

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

Apprenez étape par étape comment déployer correctement et rapidement un projet TS Node.js !

源码

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

总结

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Vue : une combinaison parfaite d'outils de développement front-end PHP et Vue : une combinaison parfaite d'outils de développement front-end Mar 16, 2024 pm 12:09 PM

PHP et Vue : une combinaison parfaite d'outils de développement front-end À l'ère actuelle de développement rapide d'Internet, le développement front-end est devenu de plus en plus important. Alors que les utilisateurs ont des exigences de plus en plus élevées en matière d’expérience des sites Web et des applications, les développeurs front-end doivent utiliser des outils plus efficaces et plus flexibles pour créer des interfaces réactives et interactives. En tant que deux technologies importantes dans le domaine du développement front-end, PHP et Vue.js peuvent être considérés comme une arme parfaite lorsqu'ils sont associés. Cet article explorera la combinaison de PHP et Vue, ainsi que des exemples de code détaillés pour aider les lecteurs à mieux comprendre et appliquer ces deux éléments.

Questions fréquemment posées par les enquêteurs front-end Questions fréquemment posées par les enquêteurs front-end Mar 19, 2024 pm 02:24 PM

Lors des entretiens de développement front-end, les questions courantes couvrent un large éventail de sujets, notamment les bases HTML/CSS, les bases JavaScript, les frameworks et les bibliothèques, l'expérience du projet, les algorithmes et les structures de données, l'optimisation des performances, les requêtes inter-domaines, l'ingénierie front-end, les modèles de conception et les nouvelles technologies et tendances. Les questions de l'intervieweur sont conçues pour évaluer les compétences techniques du candidat, son expérience en matière de projet et sa compréhension des tendances du secteur. Par conséquent, les candidats doivent être parfaitement préparés dans ces domaines pour démontrer leurs capacités et leur expertise.

Django est-il front-end ou back-end ? Vérifiez-le! Django est-il front-end ou back-end ? Vérifiez-le! Jan 19, 2024 am 08:37 AM

Django est un framework d'application Web écrit en Python qui met l'accent sur un développement rapide et des méthodes propres. Bien que Django soit un framework Web, pour répondre à la question de savoir si Django est un front-end ou un back-end, vous devez avoir une compréhension approfondie des concepts de front-end et de back-end. Le front-end fait référence à l'interface avec laquelle les utilisateurs interagissent directement, et le back-end fait référence aux programmes côté serveur. Ils interagissent avec les données via le protocole HTTP. Lorsque le front-end et le back-end sont séparés, les programmes front-end et back-end peuvent être développés indépendamment pour mettre en œuvre respectivement la logique métier et les effets interactifs, ainsi que l'échange de données.

Partage d'expérience en développement C# : compétences en développement collaboratif front-end et back-end Partage d'expérience en développement C# : compétences en développement collaboratif front-end et back-end Nov 23, 2023 am 10:13 AM

En tant que développeur C#, notre travail de développement comprend généralement le développement front-end et back-end. À mesure que la technologie se développe et que la complexité des projets augmente, le développement collaboratif du front-end et du back-end est devenu de plus en plus important et complexe. Cet article partagera quelques techniques de développement collaboratif front-end et back-end pour aider les développeurs C# à effectuer leur travail de développement plus efficacement. Après avoir déterminé les spécifications de l’interface, le développement collaboratif du front-end et du back-end est indissociable de l’interaction des interfaces API. Pour assurer le bon déroulement du développement collaboratif front-end et back-end, le plus important est de définir de bonnes spécifications d’interface. La spécification de l'interface implique le nom de l'interface

Explorer la technologie front-end du langage Go : une nouvelle vision du développement front-end Explorer la technologie front-end du langage Go : une nouvelle vision du développement front-end Mar 28, 2024 pm 01:06 PM

En tant que langage de programmation rapide et efficace, le langage Go est très populaire dans le domaine du développement back-end. Cependant, peu de gens associent le langage Go au développement front-end. En fait, l’utilisation du langage Go pour le développement front-end peut non seulement améliorer l’efficacité, mais également ouvrir de nouveaux horizons aux développeurs. Cet article explorera la possibilité d'utiliser le langage Go pour le développement front-end et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre ce domaine. Dans le développement front-end traditionnel, JavaScript, HTML et CSS sont souvent utilisés pour créer des interfaces utilisateur.

Combinaison de Golang et de technologie front-end : découvrez comment Golang joue un rôle dans le domaine front-end Combinaison de Golang et de technologie front-end : découvrez comment Golang joue un rôle dans le domaine front-end Mar 19, 2024 pm 06:15 PM

Combinaison de Golang et de la technologie front-end : pour explorer le rôle de Golang dans le domaine front-end, des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet et des applications mobiles, la technologie front-end est devenue de plus en plus importante. Dans ce domaine, Golang, en tant que puissant langage de programmation back-end, peut également jouer un rôle important. Cet article explorera comment Golang est combiné avec la technologie front-end et démontrera son potentiel dans le domaine front-end à travers des exemples de code spécifiques. Le rôle de Golang dans le domaine front-end est celui d'un outil efficace, concis et facile à apprendre.

Django : Un framework magique capable de gérer à la fois le développement front-end et back-end ! Django : Un framework magique capable de gérer à la fois le développement front-end et back-end ! Jan 19, 2024 am 08:52 AM

Django : Un framework magique capable de gérer à la fois le développement front-end et back-end ! Django est un framework d'application Web efficace et évolutif. Il est capable de prendre en charge plusieurs modèles de développement Web, notamment MVC et MTV, et peut facilement développer des applications Web de haute qualité. Django prend non seulement en charge le développement back-end, mais peut également créer rapidement des interfaces frontales et obtenir un affichage de vue flexible via un langage de modèle. Django combine le développement front-end et le développement back-end dans une intégration transparente, afin que les développeurs n'aient pas à se spécialiser dans l'apprentissage.

Qu'est-ce qu'un ESM modulaire frontal ? Qu'est-ce qu'un ESM modulaire frontal ? Feb 25, 2024 am 11:48 AM

Qu'est-ce que l'ESM front-end ? Des exemples de code spécifiques sont requis. Dans le développement front-end, ESM fait référence à ECMAScriptModules, une méthode de développement modulaire basée sur la spécification ECMAScript. ESM apporte de nombreux avantages, tels qu'une meilleure organisation du code, l'isolation entre les modules et la réutilisabilité. Cet article présentera les concepts de base et l'utilisation d'ESM et fournira quelques exemples de code spécifiques. Le concept de base d'ESM Dans ESM, nous pouvons diviser le code en plusieurs modules, et chaque module expose certaines interfaces pour que d'autres modules puissent

See all articles