Question

I know this is very basic question, but it's very strange that I cannot make it work, after spending hours, I really need help.

  • OSX 10.8.4
  • sublime Text 2 Version 2.0.2 Build 2221
  • node v0.10.15
  • jshint v2.1.7

Actually, I clean-installed sublime Text 2 just for this; just Sublime Package Control has been installed.

Firstly, I prepared a foo.js code:

function x(a, b)
{
    return a + b

res = x(10, 20)
console.log("res = " + res);

which result:

$ jshint foo.js                                       
foo.js: line 3, col 17, Missing semicolon.
foo.js: line 6, col 16, Missing semicolon.
foo.js: line 2, col 1, Unmatched '{'.

3 errors

So, jshint works as expected so far for the simple test.

I tried many things to get it work with Sublime Linter, but with no success, I clean-installed the sublime app, then followed a tutorial video:

https://tutsplus.com/lesson/sublime-linter/

Looks easy, and Sublime Linter appearrently successfully installed and readme appears as the video show at 00:30, but in my case, after that, saving or whatever never triggers anything.

Well, I'm totally lost. Please advise. Thanks.

UPDATE:

I noticed sublimeText console shown a error!

Traceback (most recent call last):
  File "./SublimeLinter.py", line 431, in _update_view
  File "./SublimeLinter.py", line 143, in run_once
  File "./sublimelinter/modules/base_linter.py", line 291, in run
  File "./sublimelinter/modules/javascript.py", line 72, in parse_errors
ValueError: Error from jshint: /Users/ken/Library/Application Support/Sublime Text 2/Packages/SublimeLinter/sublimelinter/modules/libs/jshint/jshint.js:7881
})(window)
   ^
ReferenceError: window is not defined
    at Object.require.util (/Users/ken/Library/Application Support/Sublime Text 2/Packages/SublimeLinter/sublimelinter/modules/libs/jshint/jshint.js:7881:4)

EDIT: ok, this seems bug, I should have checked there first..

https://github.com/SublimeLinter/SublimeLinter/issues

Was it helpful?

Solution

There is currently a workaround for this:

The hotfix for this is - in Linux installations - to add

global.window = {};

to the top of the file

~/.config/sublime-text-2/Packages/SublimeLinter/sublimelinter/modules/libs/jshint/jshint.js

For Windows or OS/X installations you need to find the location of your Sublime Text package configurations.

OTHER TIPS

For those that are still getting this error, edit the JSHint configuration file and add the following option:

"jshint_options": {
  "undef": true,
  "unused": true,
  "browser": true, /* Defines DOM globals such as window, navigator, FileReader, etc. */
  "jquery": true, /* OPTIONAL: globals exposed by jQuery */
  "devel": true,  /* OPTIONAL: globals such as debugging, alert  */
  "globals": {    /* OPTIONAL: set others that aren't predefined by JSHint */ 
    "Modernizr": true
  }
}

Learn more about the pre-defined JSHint global variables

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top