node.js - 在终端中无法访问全局安装的 npm 包

标签 node.js terminal npm protractor npm-install

我通过 npm install -g protractor 安装了 protractor 并成功运行。

运行 npm -g ls --depth=0 显示正确安装了 protractor

azim@azim-desktop:~$ npm -g ls --depth=0
/home/azim/npm-global/lib
├── express-generator@4.13.1
├── generator-angular@0.12.1
├── generator-chrome-extension@0.3.1
├── generator-gulp-angular@1.0.2
├── generator-gulp-angular-subtask@0.9.1
├── generator-karma@1.0.0
├── generator-mocha@0.1.8
├── generator-react-webpack@3.2.2
├── git-remote-mango@0.0.2
├── jshint@2.7.0
├── jsx@0.9.89
├── mango-admin@0.1.1
├── n@2.1.0
├── npm@3.7.2
├── protractor@4.0.0
└── yo@1.6.0

但是在终端中无法访问 Protractor 。

azim@azim-desktop:~$ protractor
protractor: command not found

前段时间它运行良好,我已经将我的 npmnode 更新到最新版本。我认为在那之后 PATH 变量搞砸了。用谷歌搜索解决方案,但没有任何效果。我不想搞砸目前的情况。

当前路径是:

azim@azim-desktop:~$ echo $NODE_PATH
/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/azim/npm-global/lib/node_modules

版本:

azim@azim-desktop:~$ npm --version
2.14.12
azim@azim-desktop:~$ node --version
v4.3.1

最佳答案

环境变量$NODE_PATH 被 Node 用来查找模块。

本质上,您需要确保可以通过环境变量 $PATH 访问 protractor 二进制文件所在的目录路径。


我的 Protractor 安装位置示例:

root@codeblog:~# which protractor
/usr/bin/protractor

root@codeblog:~# env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript

如果你在另一个地方安装了 protractor 那么你可能想要调整你的 ~/.bashrc 将该目录附加到 $PATH 变量。

喜欢:

PATH=$PATH:/usr/my_protractor_dir/bin

关于node.js - 在终端中无法访问全局安装的 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38474232/

相关文章:

node.js - NodeJS : Crypto - Why do I get the same hash no matter on the input?

java - 使用 java 在终端中读取 postgres 表

java - 一种在终端中居中对齐文本的方法?

node.js - npm 安装错误版本的 Angular(8.1.0)

node.js - 如何将 Powershell 命令添加到 NPM 脚本?

angular - 是否有用于音频管理的 Angular 4 npm 包?

node.js - 是否可以将 .m4a 文件与 Google Speech to Text API 一起使用?

node.js - 我可以在不使用 process.chdir() 的情况下更改 require( )'d module' s cwd )

angularjs - 我如何从nodeJS触发Airflow Dag?

c - 为什么空的 printf 允许我继续从标准输入读取数据?