我使用安装了 jshint sudo npm install -g jshint
,它似乎有效:
$which jshint
/usr/local/bin/jshint
然而 runningjshint
或其等效的完整路径似乎没有做任何事情。它也不会给出错误——它什么都不做:
$jshint
$jshint --help
$jshint --verbose
$jshint --debug
$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js
我还尝试根据这个答案对nodejs 进行符号链接:
$sudo ln -s /usr/bin/nodejs /usr/bin/node
$jshint admin.js --verbose
$jshint admin.js
$jshint --help
$man jshint
No manual entry for jshint
See 'man 7 undocumented' for help when manual pages are not available.
我在这里错过了什么?
编辑:这是apt-cache policy nodejs npm
. 我只是使用标准的 Ubuntu 14.04 包,所以这没什么特别的:
└─>apt-cache policy nodejs npm
nodejs:
Installed: 0.10.25~dfsg2-2ubuntu1
Candidate: 0.10.25~dfsg2-2ubuntu1
Version table:
*** 0.10.25~dfsg2-2ubuntu1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
npm:
Installed: 1.3.10~dfsg-1
Candidate: 1.3.10~dfsg-1
Version table:
*** 1.3.10~dfsg-1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
官方回购是一团糟......
通过官方存储库安装 Node 和 npm 一直给我带来麻烦。我怀疑这可能是由于工具依赖于
node
,当 Ubuntu 上的实际命令是nodejs
时,这就是创建符号链接应该起作用的原因。它在我的虚拟机快速测试中对我有用,但由于它对你不起作用,让我们尝试其他方法......所以,以不同的方式安装 Node.JS
我通常更喜欢使用NVM在 Ubuntu 上安装 Node 。这避免了
node
在 Ubuntu 上未定义命令的问题,并且避免了使用安装 npm 模块所需的权限混乱。sudo
执行以下操作以回到干净的状态:
删除您使用 npm 安装的所有全局模块(此处说明):
删除符号链接节点文件夹:
卸载通过 Ubuntu 存储库安装的
nodejs
和的副本:npm
清理任何其他杂物:
此时
which node
, 、which nodejs
、which npm
和which jshint
应该都不返回任何内容。重新安装 Node,跳过官方存储库
获取最新的 NVM 副本(您可能需要
sudo apt-get install curl
先获取):告诉你的shell使用
nvm
然后安装一个节点版本
并告诉 nvm 你想使用哪个版本的 Node
现在您应该能够使用
node
命令运行 Node,您应该能够在不使用 的情况下全局安装模块sudo
,并且您应该最终得到一个 jshint 的工作副本。如果您不想
nvm use v0.12
每次启动新的终端会话时都运行,您可以nvm use v
将~/.bashrc
. 这v
并不特别,它只会匹配v*
并找到最新版本。或者,您可以对特定版本进行硬编码。