文章

安装nodejs

安装nodejs

一键脚本

1
wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh && chmod +x install.sh && ./install.sh

重启终端

1
nvm install node

使用nvm安装Node.js

1. 安装nvm

1
wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh && chmod +x install.sh && ./install.sh

2. 使用nvm安装Node.js

安装nvm后,使用以下命令安装Node.js:

1
nvm install node

或者安装特定版本:

1
nvm install 16.0.0

3. 使用新版本

切换到新安装的Node.js版本:

1
nvm use node

4. 验证安装

运行以下命令验证Node.js版本:

1
node --version

配置npm镜像源

使用npm config命令配置镜像

你可以使用npm config命令来设置npm的镜像源。以下是一些常用的镜像源:

  • 淘宝镜像
    1
    
    npm config set registry https://registry.npm.taobao.org
    
  • 腾讯镜像
    1
    
    npm config set registry https://mirrors.cloud.tencent.com/npm/
    
  • 华为镜像
    1
    
    npm config set registry https://repo.huaweicloud.com/repository/npm/
    

使用.npmrc文件配置镜像

你也可以通过编辑.npmrc文件来配置镜像。.npmrc文件通常位于用户的根目录下。

  • 创建或编辑.npmrc文件
    1
    
    nano ~/.npmrc
    
  • 添加以下内容
    1
    
    registry=https://registry.npm.taobao.org
    

    或者选择其他镜像源。

使用nrm工具管理镜像

nrm(NPM Registry Manager)是一个npm镜像源管理工具,可以方便地切换和查看当前使用的镜像源。

  • 安装nrm
    1
    
    npm install -g nrm
    
  • 查看可用镜像源
    1
    
    nrm ls
    
  • 切换镜像源
    1
    
    nrm use taobao
    

    或者选择其他镜像源。

常用的npm命令:

安装包

  • 安装项目依赖:
    1
    
    npm install
    
  • 安装全局包:
    1
    
    npm install -g <package-name>
    
  • 安装开发依赖:
    1
    
    npm install --save-dev <package-name>
    
  • 安装指定版本的包:
    1
    
    npm install <package-name>@<version>
    

卸载包

  • 卸载项目依赖:
    1
    
    npm uninstall <package-name>
    
  • 卸载全局包:
    1
    
    npm uninstall -g <package-name>
    

更新包

  • 更新项目依赖到最新版本:
    1
    
    npm update
    
  • 更新全局包到最新版本:
    1
    
    npm update -g <package-name>
    

查看包信息

  • 查看当前项目依赖:
    1
    
    npm list
    
  • 查看全局安装的包:
    1
    
    npm list -g
    
  • 查看包的详细信息:
    1
    
    npm view <package-name>
    

运行脚本

  • 运行package.json中定义的脚本:
    1
    
    npm run <script-name>
    

初始化项目

  • 创建package.json文件:
    1
    
    npm init
    
  • 快速创建package.json文件(使用默认值):
    1
    
    npm init -y
    

登录和发布包

  • 登录npm注册表:
    1
    
    npm login
    
  • 发布包到npm注册表:
    1
    
    npm publish
    

清理缓存

  • 清理npm缓存:
    1
    
    npm cache clean --force
    

忽略证书下载

1
npm install --strict-ssl=false  

常见问题

1
2
3
4
5
6
7
npm -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

GLIBC版本太低,解决办法:

1
2
3
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.40.tar.gz && \
tar -xzvf glibc-2.40.tar.gz && cd glibc-2.40 && mkdir build  && cd build && \
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/us

上步更新glibc 可能会发生错误。如果没有错误下边这一步不用看。

1
2
3
configure: error: 
*** These critical programs are missing or too old: make bison compiler
*** Check the INSTALL file for required versions.

解决办法:升级gcc与make

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 升级GCC(默认为4 升级为8)</span>
yum install -y centos-release-scl && \
yum install -y devtoolset-8-gcc* && \
mv /usr/bin/gcc /usr/bin/gcc-4.8.5 && \
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc && \
mv /usr/bin/g++ /usr/bin/g++-4.8.5 && \
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

# 升级 make(默认为3 升级为4)
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz && \
tar -xzvf make-4.3.tar.gz && cd make-4.3/ && \
./configure  --prefix=/usr/local/make && \
make && make install && \
cd /usr/bin/ && mv make make.bak && \
ln -sv /usr/local/make/bin/make /usr/bin/make

这时 所有的问题 都已经解决完毕 再重新执行上一步 更新glibc即可

1
2
cd /tmp/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
本文由作者按照 CC BY 4.0 进行授权