我正在尝试在 Ubuntu 中使用 yeoman。一切都安装正确,但我无法使用yo
来自 bash 的命令。如果我导航到适当的目录并从命令提示符运行一切,那么我认为我的问题是脚本未加载到我的变量node cli.js
中。$PATH
脚本的目录是/home/qtrain/.node/lib/node_modules/yo
,实际脚本是/home/qtrain/.node/lib/node_modules/yo/cli.js
我尝试使用以下命令将路径添加到 .bashrc 文件中
export PATH="$PATH:$HOME/.node/lib/node_modules/yo"
但是当我重新启动终端并输入$PATH
这是我的输出:
/home/qtrain/Enthought/Canopy_64bit/User/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:/home/qtrain/.node/lib/node_modules/yo: No such file or directory
显然 yo 不起作用。
我的问题:我是否没有正确添加 $PATH?我应该添加目录还是实际脚本才能使其在命令行中工作?
此外,yo 是使用安装的sudo npm install -g yo
,因此它是全局安装的。任何帮助都将不胜感激。
答案1
问题是,即使您将该目录添加到 PATH,那里也没有名为“yo”的可执行程序。
我会在你的 .bashrc 中添加一个函数:
yo() ( cd ~/.node/lib/node_modules/yo && node cli.js "$@" )
答案2
我知道自己回答问题不太礼貌,但这似乎是一个非常常见的问题,所以希望这能帮助其他人。在 irc 频道 #ubuntu-pa-us 上获得了帮助。
解决方案:
授予文件可执行权限。
cd /path/to/directory
chmod +x cli.js
创建一个符号链接-必须使用目录的完整路径-就我而言
ln -s /home/user/.node/lib/node_modules/yo/cli.js /usr/bin/yo
您现在可以通过命令行来工作。