当前位置: 首页 > news >正文

[基础服务] CentOS 7.x 安装NodeJS环境并搭建Hexo

方法 / 步骤

一:常规安装

🎫1.1 安装NodeJS

🔗 官网下载链接:http://nodejs.cn/download/

在这里插入图片描述

cd /usr/local/
# 用命令行形式进行链接下载
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz
# 解压缩到目标文件夹
tar -xvf node-v14.15.4-linux-x64.tar.xz /usr/local/nodejs

# 建立node软链接
ln -s /usr/local/nodejs/bin/node /usr/local/bin
# 建立npm 软链接
ln -s /usr/local/nodejs/bin/npm /usr/local/bin
  • 更换镜像源
# 设置国内淘宝镜像源
npm config set registry https://registry.npm.taobao.org
# 查看设置信息
npm config list

# 验证是否安装成功
node -v
npm -v

在这里插入图片描述

在这里插入图片描述

🎫1.2 安装Git

# 安装Git
sudo yum install git-core
# 查看git版本
git version

🌈 1.3 安装hexo

❗❗ 如果遇到报错
npm WARN saveError ENOENT: no such file or directory, open ‘/blog/package.json’
npm WARN enoent ENOENT: no such file or directory, open ‘/blog/package.json’

  • 初始化npm并且升级到最新版
    npm init -y
    npm install -g npm
npm install -g hexo-cli
  • 安装成功
    在这里插入图片描述
  • 初始化haxo文件

❗❗ 如果初始化时候 提示无法找到hexo命令

  • 先通过npm命令找到node_modules位置 然后创建软连接 :
    npm root -g
  • 创建软连接 (前面的路径换成你自己的npm路径)
    ln -s /usr/local/nodejs/lib/node_modules/hexo-cli/bin/hexo /usr/local/bin/hexo
cd /usr/local/blog-hexo
hexo init
# 安装服务:
npm install hexo-server --save
#启动服务:
hexo server
# 或者简写命令
hexo s
  • 浏览器 ip:4000端口号 打开可以
    在这里插入图片描述

- 静态模式:
只会处理public里面的文件,而不处理文件变通,通常先使用 hexo generate,再静态:hexo server -s

- 生成静态文件(快速且简单):hexo generate
完成后部署:hexo g -d 和 hexo d -g效果一样

  • haxo其他命令
# 改变端口
hexo server -p 8000

🌈 1.4 主题安装

找到官方推荐主题
在这里插入图片描述

  • 克隆主题
    找到对应的git地址将文件git clone到themes目录下
cd /usr/local/blog-hexo/themes/
git clone https://github.com/auroral-ui/hexo-theme-aurora.git auroral

在这里插入图片描述

  • 修改_config.yml文件内容

在我们hexo安装包中找到_config.yml安装包,用编译器打开(vs code或者sublime)。
command + F 查找 theme将原来默认的主题 landscape改为 auroral。修改好的代码参考下图:

在这里插入图片描述

  • 保存预览
# 预览
hexo s

在这里插入图片描述

🌈 1.5后台运行

在使用hexo s启动博客时,它只能挂在前台上。一旦退出terminal,它就无法使用了。
这时我就使用了hexo s &这个命令,期待它可以跑在后台。但是也失败了。
于是就想起了npm管理web的工具—pm2

💖 pm2是一个管理nodejs process的工具,它可以让我们用简单的指令启动nodejs进程(多为web前端)并管理之。
详情可以参考pm2的官方文档,这里只是用到了start/stop/logs几个常用的命令。

# 安装pm2
npm install -g pm2

在这里插入图片描述

进到博客的根目录,新建一个文件:hexo_run.js

//run
const { exec } = require('child_process')
exec('hexo server',(error, stdout, stderr) => {
        if(error){
                console.log('exec error: ${error}')
                return
        }
        console.log('stdout: ${stdout}');
        console.log('stderr: ${stderr}');
})
# 查找npm的安装路径
npm config get prefix
# 进入npm的bin目录下,将其链接到全局PATH路径:我的路径是/usr/local/nodejs
cd /usr/local/nodejs/bin
# 添加软链接
ln -s /usr/local/nodejs/bin/pm2 /usr/bin/pm2

# 进入博客根目录 启动这个进程服务
cd /usr/local/blog-hexo/
# 启动
pm2 start hexo_run.js

-------------------------------其他相关命令-----------------------
# pm2 重启服务
pm2 restart [project]
# 停止指定应用,如pm2 stop httpServer;
pm2 stop <appName> [options] 

在这里插入图片描述

参考资料 & 致谢

[1] 安装NodeJS详细教程

相关文章:

  • 设计一个支持多版本的APP的后端服务
  • 在Ubuntu/Linux中自动备份MySQL数据库
  • 基于windows WSL安装Docker Desktop,修改默认安装到C盘及默认下载镜像到C盘
  • Kubernetes Pod调度策略
  • 猿创征文 | JavaScript函数柯里化
  • Servlet的注册和生命周期
  • [Latex] \bibitem{} | .bbl 格式参考文献转换与获得
  • cmake和makefile区别和cmake指定编译器(cmake -G)
  • JavaWeb对于Listener的运用详解【利用Session统计在线人数】
  • Windows命令: net与sc的区别
  • 向量数据库是如何检索的?基于 Feder 的 HNSW 可视化实现
  • 架构师的 36 项修炼第11讲:致未来的架构师
  • 基于springboot+vue的商城系统(电商平台)
  • Linux CentOS 8(用户组的管理实验)
  • .net core开源商城系统源码,支持可视化布局小程序
  • IDEA 插件开发入门教程
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java概述
  • Python 反序列化安全问题(二)
  • React16时代,该用什么姿势写 React ?
  • Sublime text 3 3103 注册码
  • 阿里云前端周刊 - 第 26 期
  • 番外篇1:在Windows环境下安装JDK
  • 浮动相关
  • 好的网址,关于.net 4.0 ,vs 2010
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 微信小程序实战练习(仿五洲到家微信版)
  • 用 Swift 编写面向协议的视图
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 进程与线程(三)——进程/线程间通信
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • $().each和$.each的区别
  • (二)WCF的Binding模型
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (强烈推荐)移动端音视频从零到上手(上)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .gitignore文件—git忽略文件
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @EventListener注解使用说明
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [C++]C++入门--引用
  • [FROM COM张]如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
  • [HCIE] IPSec-VPN (手工模式)
  • [LeetCode][LCR178]训练计划 VI——使用位运算寻找数组中不同的数字
  • [Oh My C++ Diary]\t \n \r的用法
  • [one_demo_8]十进制转二进制
  • [RK-Linux] RK3399支持M.2 NVMe SSD启动
  • [Ruby] 基础知识
  • [Tyvj1462]凸多边形
  • [UI5 常用控件] 07.SplitApp,SplitContainer
  • [编]使用AutoCompleteExtender实现文本框自动匹配
  • [解决方案]sql server复制需要有实际的服务器名称才能连接到服务器