我怎样才能让 jshint 工作?

我怎样才能让 jshint 工作?

我使用安装了 jshint sudo npm install -g jshint,它似乎已经起作用了:

$which jshint
/usr/local/bin/jshint

然而,运行jshint或执行其完整路径等效操作似乎没有任何作用。它也没有给出错误——它什么也不做:

$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

答案1

官方的 repos 很乱...

通过官方存储库安装 Node 和 npm 总是给我带来麻烦。我怀疑这可能是由于工具依赖于node,而 Ubuntu 上的实际命令是nodejs,这就是为什么要创建符号链接应该有效。它在我虚拟机中的快速测试中对我有效,但是既然它对你不起作用,让我们尝试其他方法...

因此,以不同的方式安装 Node.JS

我通常更喜欢使用以下方式在 Ubuntu 上安装 Node非易失性存储器node。这样就避免了在 Ubuntu 上命令未定义的问题,也避免了权限混乱需要使用sudo安装 npm 模块。

请执行以下操作以恢复到干净状态:

删除使用 npm 安装的所有全局模块(此处的说明):

sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g

删除符号链接节点文件夹:

sudo rm /usr/bin/node

卸载通过 Ubuntu 存储库安装的nodejs和的副本:npm

sudo apt-get remove --purge nodejs npm

清理其他杂物:

sudo apt-get autoremove

此时,which nodewhich nodejswhich npmwhich jshint都应该返回零。

重新安装 Node,跳过官方存储库

获取 NVM 的最新副本(您可能需要sudo apt-get install curl先获取):

curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash

告诉你的 shell 使用nvm

source ~/.nvm/nvm.sh

然后安装一个node版本

nvm install 0.12 # or whatever the latest version is

并告诉 nvm 你想使用哪个版本的 Node

nvm use 0.12

现在您应该能够使用node命令运行 Node,您应该能够在没有的情况下全局安装模块sudo,并且您最终应该得到 jshint 的工作副本。

如果您不想nvm use v0.12每次启动新的终端会话时都运行,则可以将nvm use v其添加到~/.bashrcv没有什么特别的,它只会匹配v*并找到最新版本。或者,您可以硬编码特定版本。

相关内容