use*_*287 5 linux-mint jshint sublimelinter sublimetext3
期望的行为
使用Sublime Text 3激活.js文件.
实际行为
没有掉毛.
例如,以下显示没有错误:
var x = ""
Run Code Online (Sandbox Code Playgroud)
重现步骤
环境
Tools > SublimeLinter > Lint Mode > "Background"
Tools > SublimeLinter > Mark Style > "Fill"
在Sublime Text中(安装SublimeLinter和JSHint插件)
在命令行
使用以下命令安装node.js,npm和jshint:
sudo apt-get install nodejs npm
sudo npm install -g jshint
退出并重新启动Sublime Text.
故障排除
在命令行:
hash -r
which jshint
returns
/usr/local/bin/jshint
Run Code Online (Sandbox Code Playgroud)
我也试过这个解决方案(/sf/answers/1484222561/),涉及手动改变路径Preferences > Package Settings > SublimeLinter > "Settings - User"
并重新启动Sublime Text,但没有变化:
"paths": {
"linux": ["/usr/local/bin/jshint"],
"osx": [],
"windows": []
},
Run Code Online (Sandbox Code Playgroud)
文档参考
关于如何安装jshint插件:
https://github.com/SublimeLinter/SublimeLinter-jshint
UPDATE
我只是在命令行中运行它 - 结果可能有助于排除故障:
jshint --version
/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这也出现在Sublime文本控制台中:
SublimeLinter: WARNING: no jshint version could be extracted from:
/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这似乎使JSHint工作 - 但如果有人能够确认这是最好的方法:
https://github.com/joyent/node/issues/3911#issuecomment-8956154
我发现这通常是一个错误的错误,如果你从包管理器安装你的bin可能被称为nodejs所以你只需要符号链接它就像这样"ln -s/usr/bin/nodejs/usr/bin/node"
注意:使用此解决方案,无需对路径进行任何调整Preferences > Package Settings > SublimeLinter > "Settings - User"
.
您(OP)提供的解决方案将起作用,但我会给出一些解释,告诉您如何验证问题,提供一些其他选项以及一些最佳实践(这是您在发布时所寻求的内容)回答.
问题是jshint可执行文件正在寻找使用"node"解释器运行,并且系统找不到与路径中的名称"node"匹配的可执行文件.(我相信以前"节点"曾经是标准名称,但现在它通常被称为"nodejs",因为担心"节点"名称是泛型的并且与其他可执行文件冲突.)
以下是如何查看正在发生的事情...在终端上,执行以下操作: - 通过执行"which jshint"找到jshint可执行文件的路径(您应该在"/ usr/local/bin"中找到它) - 通过发出"cat/usr/local/bin"来查看内容.您将看到第一行指定要使用的解释器,即"node"(不是"nodejs").
目前,当您使用包管理器安装Node.js时,名为"nodejs"的Debian包会创建可执行文件"/ usr/bin/nodejs".因此,指定"节点"可执行文件的任何其他可执行文件都找不到,并且不起作用.
你有很多选择:
最快捷,最简单.为"node"创建指向"nodejs"的符号链接(实际上是"快捷方式").你的答案中有一个版本.通常认为,将此链接放在PATH中除/ usr/bin之外的位置(例如/ usr/local/bin中)是更好的做法.该目录受到保护,因此您需要超级用户权限才能在目标中创建链接.因此,要发出的命令是:
sudo ln -s /usr/bin/nodejs /usr/local/bin/node"
或者,如果您所在的系统还没有Node.js(或者您删除了当前的软件包),那么当您通过软件包管理器安装它时,请使用"nodejs-legacy"软件包(而不是nodejs).此包实际上会自动为您创建一个链接.如果您已经安装了Node.js,则应首先将其删除.
sudo apt-get remove nodejs
Run Code Online (Sandbox Code Playgroud)sudo apt-get install nodejs-legacy
Run Code Online (Sandbox Code Playgroud)最后,您可以手动安装Node.js或构建它.这更复杂,我不会在这里解释所有这些.
您可以通过发出命令"jshint --version"来验证jshint现在可以运行,现在看起来应该是这样的:
$ jshint --version
jshint v2.5.10
快乐的Linting!
归档时间: |
|
查看次数: |
4384 次 |
最近记录: |