如何使用yum安装nodejs?

Node.js

1 理论部分

1.1 Node.js简介

– Node.js是运行在服务端的JavaScript
– Node.js是基于Chrome JavaScript运行时建立的一个平台
– Node.js是事件驱动I/O服务端JavaScript环境,基于Google的V8引擎
注:V8引擎执行Javascript的速度非常快,性能非常好

1.2 npm的概念

NPM是JavaScript开发人员可以轻松共享和重用代码,并且可以更轻松更新你所共享的代码。

1.3 npm包的分类

1.3.1 全局安装与全局npm包

– 通过“npm install -g ”命令生成
– 在任一目录下通过require函数传递npm包的绝对路径引用
– 无法通过npm包名称直接引用

1.3.2 本地安装与本地npm包

– 项目文件夹内通过“npm install ”命令生成
– 项目文件夹内可直接通过require函数传递本地npm包名称引用
– 本地安装的项目文件夹支持自定义(如,/var/www/project1)

2 最佳实践

2.1 准备工作

2.1.1 安装辅助工具

yum install -y git

2.1.2 配置yum源

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

2.2 配置软件包

2.2.1 部署软件包

yum install -y nodejs

2.2.2 验证安装

node -v

可见如下显示,

v8.16.0

配置完成后,我们建议你使用如下命令测试npm,

npm version

可见如下显示,

{ npm: '6.4.1',
  ares: '1.10.1-DEV',
  cldr: '32.0',
  http_parser: '2.8.0',
  icu: '60.1',
  modules: '57',
  napi: '4',
  nghttp2: '1.33.0',
  node: '8.16.0',
  openssl: '1.0.2r',
  tz: '2017c',
  unicode: '10.0',
  uv: '1.23.2',
  v8: '6.2.414.77',
  zlib: '1.2.11' }

配置完成后,我们建议你使用如下命令测试npx,

npx -v

可见如下显示,

6.4.1

2.2.3 增加运行用户

groupadd -g 548 nodejs
useradd -u 548 -g 548 -d /var/lib/nodejs/ nodejs

配置完成后,我们建议你使用如下命令测试node、npm和npx,

su - nodejs
node -v
npm version
npx -v

2.2.4 测试sudo权限

sudo -iu nodejs node -v
sudo -iu nodejs npm version
sudo -iu nodejs npx -v

使用参数“i”是为避免程序以nodejs普通用户身份扫描root的家目录而报以下错误,

Error: EACCES: permission denied, scandir '/root'
(node:34196) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'get' of undefined
    at errorHandler (/usr/lib/node_modules/npm/lib/utils/error-handler.js:205:18)
    at /usr/lib/node_modules/npm/bin/npm-cli.js:78:20
    at cb (/usr/lib/node_modules/npm/lib/npm.js:228:22)
    at /usr/lib/node_modules/npm/lib/npm.js:266:24
    at /usr/lib/node_modules/npm/lib/config/core.js:83:7
    at Array.forEach ()
    at /usr/lib/node_modules/npm/lib/config/core.js:82:13
    at f (/usr/lib/node_modules/npm/node_modules/once/once.js:25:25)
    at /usr/lib/node_modules/npm/lib/config/core.js:112:20
    at 
(node:34196) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:34196) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
TypeError: Cannot read property 'loaded' of undefined
    at process. (/usr/lib/node_modules/npm/lib/utils/error-handler.js:40:18)
    at emitOne (events.js:116:13)
    at process.emit (events.js:211:7)
/usr/lib/node_modules/npm/lib/utils/error-handler.js:205
  if (npm.config.get('json')) {
                 ^

TypeError: Cannot read property 'get' of undefined
    at process.errorHandler (/usr/lib/node_modules/npm/lib/utils/error-handler.js:205:18)
    at emitOne (events.js:116:13)
    at process.emit (events.js:211:7)
    at process._fatalException (bootstrap_node.js:391:26)

2.2.5 设置全局目录

su - nodejs
npm config get prefix

命令行显示当前全局目录的默认路径,

/usr

使用如下命令修改全局目录的默认路径,

su - nodejs
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

使用如下命令验证全局目录的路径是否被修改,

su - nodejs
npm config get prefix

命令显示如下,

/var/lib/nodejs/.npm-global

2.2.6 设置全局目录的环境变量

su - nodejs
cd ~
vim .bash_profile

加入如下行,

# Nodejs_Global
export NODEJS_GLOBAL_HOME=/var/lib/nodejs/.npm-global
export PATH=${NODEJS_GLOBAL_HOME}/bin:$PATH

保存并退出后,执行以下命令导入环境变量,

source .bash_profile

2.2.7 设置国内的源

su - nodejs
npm config get metrics-registry

命令行显示当前源服务器地址,

https://registry.npmjs.org/

使用如下命令修改源服务器地址,

su - nodejs
npm config set metrics-registry 'http://registry.npm.taobao.org'

安全连接请使用“https://registry.npm.taobao.org”,修改完毕后,使用如下命令确认配置,

su - nodejs
npm config get metrics-registry

命令显示如下,

http://registry.npm.taobao.org

2.3 常用的操作参考

2.3 常用的操作参考

如果你不熟悉常用的操作,请参阅如下链接,
https://www.cmdschool.org/archives/570

参阅文档
===========
https://yarnpkg.com/lang/en/docs/install/#centos-stable

没有评论

发表回复

Node.js
如何使用yapi-cli部署YApi?

1 基础知识 1.1 YApi的简介 – YApi是高效、易用、功能强大的API管理平台 …

Node.js
如何部署Hoppscotch?

1 基础知识 2.1 基本概念 2.1.1 Rest API – Rest API用户应 …

Node.js
如何使用二进制包安装Node.js

1 理论部分 1.1 Node.js简介 – Node.js是运行在服务端的JavaSc …