独立开发者系列(34)——node项目部署
创始人
2024-09-25 22:29:26
0

  本节梳理node项目的部署,搭建一个外部能正常访问的node网站。将开发好的项目搭建到系统里面。Node的部署比PHP版本要复杂一些。部署项目前要理解几个概念。Nodejs版本管理器概念。

   NVM概念,我们平时开发是在本地电脑上开发,开发的时候,版本是限定的一个版本,比如当前我自己电脑环境是v.20


但是很多扩展和包是基于标准的v16.20版本创建的,这个时候,我又要去下载对应的版本包,否则可能项目跑的时候,版本号对不上,导致出现问题。相比而言,php版本号比较固定,兼容性比较好。

这个时候我们需要一个能管理本地nodejs版本的工具,node version Manger  多版本管理。
 

部署node项目的时候,由于node版本太多,每个版本都有不同的库和产生,所以nvm几乎成了项目必备的部署工具。安装nvm基础流程:
1.下载 nvm 到电脑上 完成安装。

如果是Linux环境下下载安装nvm(按照官网推荐的Linux命令)

2.查看当前已经安装了的node的版本
nvm list  就可以看到当前已经安装的node版本。Node版本太高,会导致大部分的Linux运行不支持。
对于Linux 有个特别头疼的问题,就是centOS8.0以下安装不了node 18版本。这也就是为什么看到的很多项目开发都是基于16.XX开头的版本,否则你开发出来的代码,在很多服务器上运行不了。这算是node部署里面的一个大坑。

Nvm 常用命令:

nvm list available (当前全部可以安装的版本)
nvm install  xxxx (安装指定的版本 方便部署很多历史项目)

nvm use xxxx  (使用某个版本号)

3.如果只是简单跑项目,建议使用BT面板,点击软件商店 输入node

可以看到nodejs版本管理器,更新列表,可以查到对应项目支持的nodeJS版本 这个非常重要(我们需要根据项目对应的node版本来进行切换)。

选择当前环境可以运行的版本,node  npm。

4.node项目说明
如果是自己需要创建一个node项目
node项目结构的说明: node项目是依赖package.json运行的,没有该文件系统运行的时候是会报错的

如果是新开发项目 需要 npm  init ,这样会产生一个初始化的项目,会把包的名字和相关信息进行填写。

说明包,而且每次引入了新包,或者安装了installl 新的包,会自动加入到package.json里面

这里补充下部署包的相关说明:

{

  "name": "my-node-app",            // 项目名称

  "version": "1.0.0",               // 项目版本号

  "description": "A simple Node.js application",  // 项目描述

  "main": "index.js",               // 入口文件路径,通常是主要的JavaScript文件

  "scripts": {

    "start": "node index.js",       // 定义启动应用程序的命令

    "test": "echo \"Error: no test specified\" && exit 1"  // 定义运行测试的命令

  },

  "keywords": [

    "node",

    "javascript",

    "example"

  ],

  "author": "Your Name",            // 项目作者姓名或组织名称

  "license": "MIT",                 // 项目许可证类型

  "dependencies": {                 // 生产环境依赖模块及版本

    "express": "^4.17.1",           // 示例依赖的Express框架,版本号是4.17.1或以上

    "body-parser": "^1.19.0"       // 示例依赖的body-parser中间件,版本号是1.19.0或以上

  },

  "devDependencies": {              // 开发环境依赖模块及版本

    "nodemon": "^2.0.7"             // 示例依赖的nodemon工具,版本号是2.0.7或以上

  }

}

5.部署一个express简单模板项目到服务器上(express框架相对比较通用)
pnmp  install express  -g  (安装express框架)
pnmp  install express-generator  -g  (安装express的项目框架生成器,类似python里面的scrapy)

express --view=pug   安装好一个测试的试图

然后服务器打开
127.0.0.1:3000

部署到服务器上去 将防火墙的3000端口打开,可以看到服务器里面IP:3000端口已经打开运行

总结下node项目部署流程:
本地下载项目框架(或者下载需要开发的源码)——开发完成——打包移除node_modules (使用git更方便)——在服务器上拉取代码——宝塔里面安装node版本管理器——选定对应的运行版本——创建项目目录(上传文件的目录)——启动项目——放行端口——可以访问对应的项目了。

这样一个基本的node后端项目部署就完成。之前是照猫画虎,不是很熟悉,现在这次彻底走通流程,弄懂每一步的原理,也并没有想的那么难。但是确实比php项目的部署复杂一截。所以才推荐使用docker安装node项目,docker安装项目后面再详解。

相关内容

热门资讯

一分钟揭秘!贵州奕乐麻将是有挂... 自定义新版贵州奕乐麻将是有挂系统规律,只需要输入自己想要的开挂功能,一键便可以生成出贵州奕乐麻将是有...
3分钟了解(中州棋牌)外挂透明... 您好,中州棋牌这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游戏...
八分钟了解(口袋二人麻将)外挂... 自定义新版口袋二人麻将系统规律,只需要输入自己想要的开挂功能,一键便可以生成出口袋二人麻将专用辅助器...
十分钟了解(相约麻将十三水)外... 十分钟了解(相约麻将十三水)外挂透明挂辅助插件,其实是真的有挂的(有挂猫腻)-哔哩哔哩;超受欢迎的相...
六分钟了解(乐棋海南麻将)外挂... 自定义新版乐棋海南麻将系统规律,只需要输入自己想要的开挂功能,一键便可以生成出乐棋海南麻将专用辅助器...
6分钟了解!边锋老友内蒙古麻将... 大家肯定在之前边锋老友内蒙古麻将挂或者边锋老友内蒙古麻将挂中玩过6分钟了解!边锋老友内蒙古麻将挂,辅...
3分钟了解(中至麻将辅牌器购买... 3分钟了解(中至麻将辅牌器购买)外挂透明挂辅助APP,原来到底是真的有辅助挂的(有挂总结)-哔哩哔哩...
9分钟了解(乐乐围棋入门)外挂... 9分钟了解(乐乐围棋入门)外挂透明挂辅助挂(透视)确实真的有挂的(有挂长期)-哔哩哔哩;乐乐围棋入门...
七分钟了解(快玩炸翻天辅助功能... 七分钟了解(快玩炸翻天辅助功能)外挂透明挂辅助器,原来有辅助挂是真的(有挂实锤)-哔哩哔哩是一款可以...
9分钟了解(乐乐阜阳麻将)外挂... 您好,乐乐阜阳麻将这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款...