웹 프론트엔드 프런트엔드 Q&A Nodejs는 서버에 프런트엔드 프로젝트를 배포합니다.

Nodejs는 서버에 프런트엔드 프로젝트를 배포합니다.

May 08, 2023 am 10:27 AM

프런트엔드 개발에서 Node.js는 매우 중요한 역할이 되었습니다. 이는 종속성을 관리하는 데 도움이 될 뿐만 아니라 로컬에서 개발할 때 디버깅을 위해 편리하고 사용하기 쉬운 서버를 구축하는 데도 도움이 됩니다. 하지만 프런트엔드 프로젝트를 프로덕션 환경에 넣을 때는 프로젝트가 서버에서 원활하게 실행될 수 있도록 Node.js 서버를 배포해야 합니다.

이 문서에서는 Node.js를 사용하여 프런트 엔드 프로젝트를 서버에 배포하는 방법을 설명합니다. 주로 다음 단계로 구성됩니다.

  1. 서버 환경 확인

배포하기 전에 서버에 Node.js 환경이 설치되어 있는지 확인해야 합니다. 설치되어 있지 않은 경우 아래 단계에 따라 설치할 수 있습니다.

  • 터미널을 열고 다음 명령을 입력하여 Node.js를 설치합니다.
sudo apt install nodejs
로그인 후 복사
  • 설치가 성공했는지 확인하고 다음 명령을 입력하여 Node.js를 설치합니다. Node.js 버전 확인:
node -v
로그인 후 복사

Node.js 버전 번호가 나타나면 성공적으로 설치된 것입니다.

  1. 프런트엔드 프로젝트 종속성 확인

프런트엔드 프로젝트를 배포하려면 프로젝트가 의존하는 모든 라이브러리나 플러그인이 설치되었는지 확인해야 합니다. 로컬 개발 환경에서 다음 명령을 실행하면 모든 종속성을 볼 수 있습니다.

npm list
로그인 후 복사

이 명령은 node_modules 폴더에 있는 모든 라이브러리와 해당 종속성을 나열합니다. 종속성이 변경되면 다음 명령을 사용하여 업데이트해야 합니다. node_modules 文件夹中所有的库及其依赖关系。如果依赖关系有变化,你需要通过以下命令进行更新:

npm install
로그인 후 복사
로그인 후 복사
  1. 编写服务器脚本

当服务器环境和前端项目依赖关系都确认好后,我们需要编写一个脚本来启动服务器。以下是一个简单的 Node.js 服务器脚本代码示例:

const express = require('express')
const app = express()

app.use(express.static('public'))

app.listen(3000, () => {
  console.log('App listening on port 3000!')
})
로그인 후 복사

该示例代码使用了 Express 框架,将 public 文件夹中的静态文件(例如 HTML、CSS 和 JavaScript)暴露在服务器上。在浏览器中访问 localhost:3000,即可查看静态文件。

如果你的前端应用是单页面应用(SPA),你可能需要让所有路由都指向 index.html,而不是尝试加载路由对应的 HTML 文件。下面是通过 Node.js 配置路由映射的代码示例:

app.get('*', function(req, res) {
  res.sendFile(path.join(__dirname, 'public/index.html'))
})
로그인 후 복사

上面这个代码片段将为所有请求配置相同的响应,即在目录 public 中查找 index.html 并将其作为响应返回。

  1. 部署项目到服务器

将代码部署到服务器上,最好的方式就是使用 Git。以下是示例步骤:

  • 在服务器上通过 SSH 连接到 Git 仓库,首先需要安装 Git:
sudo apt-get install git
로그인 후 복사
  • 创建项目文件夹:
mkdir project_name && cd project_name
로그인 후 복사
  • 克隆项目:
git clone git@github.com:<your_username>/<your_repository_name>.git ./
로그인 후 복사
  • 安装依赖库:
npm install
로그인 후 복사
로그인 후 복사
  • 将服务器脚本拷贝到项目文件夹:
cp /path/to/server.js ./
로그인 후 복사
  1. 使用 PM2 管理服务器

在完成以上步骤后,就可以使用 Node.js 在服务器上运行应用了。但是,如果服务器发生崩溃或者应用出现异常,你可能需要手动重启服务器和应用。因此,我们需要使用一个进程管理器,PM2 就是一个很好的选择。

首先需要在服务器上安装 PM2:

sudo npm install pm2 -g
로그인 후 복사

接下来,我们使用 PM2 命令在后台运行服务器:

pm2 start server.js --name=<app_name>
로그인 후 복사

其中 app_name

pm2 list
로그인 후 복사
    서버 스크립트 작성

    서버 환경과 프런트엔드 프로젝트 종속성이 확인된 후 다음을 작성해야 합니다. 서버를 시작하는 스크립트입니다. 다음은 간단한 Node.js 서버 스크립트 코드 예입니다.

    pm2 stop <app_name>
    로그인 후 복사

    이 예제 코드는 Express 프레임워크를 사용하여 public 폴더에 있는 정적 파일(예: HTML, CSS 및 JavaScript)을 서버에 노출합니다. 우수한. 정적 파일을 보려면 브라우저에서 localhost:3000을 방문하세요.

    🎜프런트 엔드 애플리케이션이 단일 페이지 애플리케이션(SPA)인 경우 경로에 해당하는 HTML 파일을 로드하는 대신 모든 경로가 index.html를 가리키도록 해야 할 수도 있습니다. 다음은 Node.js를 통해 경로 매핑을 구성하는 코드 예제입니다. 🎜
    pm2 restart <app_name>
    로그인 후 복사
    🎜위의 코드 조각은 모든 요청에 ​​대해 동일한 응답을 구성합니다. 즉, public 디렉터리에서 <code>index.html을 찾으세요. code> code>를 응답으로 반환합니다. 🎜<ol start="4">🎜서버에 프로젝트 배포🎜🎜🎜서버에 코드를 배포하는 가장 좋은 방법은 Git을 사용하는 것입니다. 다음은 샘플 단계입니다. 🎜🎜🎜 서버에서 SSH를 통해 Git 저장소에 연결합니다. 먼저 Git을 설치해야 합니다. 🎜🎜rrreee🎜🎜프로젝트 폴더 만들기: 🎜🎜rrreee🎜🎜프로젝트 복제: 🎜🎜rrreee🎜 🎜종속 라이브러리 설치: 🎜🎜rrreee🎜🎜서버 스크립트를 프로젝트 폴더에 복사: 🎜🎜rrreee<ol start="5">🎜PM2를 사용하여 서버 관리🎜🎜🎜위 단계를 완료한 후 Node를 사용할 수 있습니다. .js를 사용하여 서버에서 애플리케이션을 실행합니다. 그러나 서버가 충돌하거나 응용 프로그램이 비정상적으로 작동하는 경우 서버와 응용 프로그램을 수동으로 다시 시작해야 할 수도 있습니다. 따라서 프로세스 관리자를 사용해야 하며 PM2가 좋은 선택입니다. 🎜🎜먼저 서버에 PM2를 설치해야 합니다.🎜rrreee🎜다음으로 PM2 명령을 사용하여 백그라운드에서 서버를 실행합니다.🎜rrreee🎜여기서 <code>app_name은 프로젝트에 지정한 이름입니다. 다음 명령을 사용하여 PM2에서 실행 중인 애플리케이션 목록을 볼 수 있습니다. 🎜rrreee🎜다음 명령을 사용하여 애플리케이션을 닫습니다. 🎜rrreee🎜다음 명령을 사용하여 애플리케이션을 다시 시작합니다. 🎜rrreee🎜이 문서에서는 방법을 설명합니다. Node.js를 사용하여 프런트엔드 프로젝트를 서버에 배포합니다. 이러한 지식을 갖추고 있으면 프런트엔드 프로젝트를 프로덕션 환경에 원활하게 배포하고 PM2를 통해 프로세스를 관리할 수 있어야 합니다. 🎜

위 내용은 Nodejs는 서버에 프런트엔드 프로젝트를 배포합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까? useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까? Mar 19, 2025 pm 03:58 PM

이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까? Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까? Mar 21, 2025 pm 06:23 PM

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까? usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까? Mar 19, 2025 pm 03:59 PM

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

이벤트 핸들러의 기본 동작을 어떻게 방지합니까? 이벤트 핸들러의 기본 동작을 어떻게 방지합니까? Mar 19, 2025 pm 04:10 PM

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.

제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까? 제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까? Mar 19, 2025 pm 04:16 PM

이 기사는 예측 가능성, 성능 및 사용 사례와 같은 측면에 중점을 둔 React의 제어 및 통제되지 않은 구성 요소의 장단점에 대해 설명합니다. 그것은 그들 사이에서 선택할 때 고려해야 할 요소에 대해 조언합니다.

HTML에서 React의 역할 : 사용자 경험 향상 HTML에서 React의 역할 : 사용자 경험 향상 Apr 09, 2025 am 12:11 AM

React는 JSX와 HTML을 결합하여 사용자 경험을 향상시킵니다. 1) JSX는 개발을보다 직관적으로 만들기 위해 HTML을 포함시킨다. 2) 가상 DOM 메커니즘은 성능을 최적화하고 DOM 운영을 줄입니다. 3) 유지 보수성을 향상시키기위한 구성 요소 기반 관리 UI. 4) 상태 관리 및 이벤트 처리는 상호 작용을 향상시킵니다.

배열 및 객체 변경과 관련하여 VUE 2의 반응성 시스템의 한계는 무엇입니까? 배열 및 객체 변경과 관련하여 VUE 2의 반응성 시스템의 한계는 무엇입니까? Mar 25, 2025 pm 02:07 PM

VUE 2의 반응성 시스템은 직접 어레이 인덱스 설정, 길이 수정 및 객체 속성 추가/삭제로 어려움을 겪습니다. 개발자는 vue의 돌연변이 방법과 vue.set ()을 사용하여 반응성을 보장 할 수 있습니다.

& lt; route & gt를 사용하여 경로를 어떻게 정의합니까? 요소? & lt; route & gt를 사용하여 경로를 어떻게 정의합니까? 요소? Mar 21, 2025 am 11:47 AM

이 기사에서는 & lt; route & gt; 경로, 구성 요소, 렌더링, 어린이, 정확한 및 중첩 라우팅과 같은 소품을 덮는 구성 요소.

See all articles