wsl:ubuntu / linux 安装 nodejs ,np

2020-06-06  本文已影响0人  黄同学2019

快速预览:

要在 linux 安装如下依赖,安装成功但是显示命令 not found


正文开始:

因为买了新电脑,nodejs 等环境要重新装

安装 nodejs 的时候遇到个问题,即,可以使用 apt 安装 nodejs,但是 npm 没有

解决办法:

# 下载
wget https://nodejs.org/dist/v14.4.0/node-v14.4.0-linux-x64.tar.xz
# 解压 到 local 文件夹
tar -xf node-v14.4.0-linux-x64.tar.xz /usr/local

# 进入 local,移动文件夹
cd /usr/local/

sudo mv node-v14.4.0-linux-x64/ nodejs

# 建立连接

sudo ln -s /usr/local/nodejs/bin/node /usr/local/bin

# sudo ln -s /usr/local/nodejs/bin/npm /usr/local/bin

# 测试

node -v

npm -v

如果执行 npm -v 报错为 Cannot find module ‘semver’,则面的步骤重新来

同样,cnpm 安装也是类似的方式:

# 使用 npm 安装 cnpm

npm install cnpm -g --registry=https://registry.npm.taobao.org  
# 会显示安装路径 /usr/local/nodejs/bin/cnpm -> /usr/local/nodejs/lib/node_modules/cnpm/bin/cnpm

# 建立软连接

sudo ln -s /usr/local/nodejs/lib/node_modules/cnpm/bin/cnpm /usr/local/bin/cnpm

# 测试

cnpm -v
# cnpm@6.1.1 (/usr/local/nodejs/lib/node_modules/cnpm/lib/parse_argv.js)

同理,安装 http-server 也是一样的问题

sudo npm install -g http-server
# /usr/local/nodejs/bin/http-server -> /usr/local/nodejs/lib/node_modules/http-server/bin/http-server

# 建立连接
sudo ln -s /usr/local/nodejs/lib/node_modules/http-server/bin/http-server /usr/local/bin/http-server

# 测试
http-server

其他:

若执行 sudo xxx 命令报错

sudo: xxx command not found

则可能要排查 sudo 相关的问题,因为可能安装某个 xxx 依赖的时候没有使用 sudo ,但是执行的时候需要使用 sudo,从而导致系列问题

以我遇到的问题为例,解决办法

# 安装 tarojs
cnpm install -g @tarojs/cli

# taro 创建项目

taro init demo

# 报错为 permission denied,所以我加上 sudo

sudo taro init demo

# 报错为 sudo: taro command not found

# 解决办法:

# 找到 taro 的位置

which taro

# /usr/local/nodejs/bin/taro

# 编辑 /etc/sudoers
sudo vi /etc/sudoers

# 找到 secure_path 在最后加上 :/usr/local/nodejs/bin

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# 结果为

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/nodejs/bin"

# 验证是否成功

# 关掉 bash 再次打开

# 执行

sudo taro init demo

# 没有报 permission 错误,创建模板成功

参考资料:

上一篇下一篇

猜你喜欢

热点阅读