Your Location is: Home > Php

jshint --version command not be found by proc_open

From: Suwa View: 4794 Shashish Chandra 

Question

I have been figuring out the installation of archanist with linters on my Windows 8.2 (64 bit) system. I ran into problem during arc diff, when it said (over git bash, I was using):

EXCEPTION: (PhutilAggregateException) Some linters failed:
    - ArcanistMissingLinterException: Unable to locate binary "jshint" to run linter ArcanistJSHintLinter. You may need to install the binary, or adjust your linter configuration.
      TO INSTALL: Install JSHint using `npm install -g jshint`. at [<arcanist>\src\lint\engine\ArcanistLintEngine.php:264]

Then I tried install jshint through

npm install -g jshint

Then, a new error occurred, where it tries to execute the command jshint --version, then the error log was:

[2020-06-01 20:14:22] EXCEPTION: (CommandException) Command failed with error #1!
COMMAND
jshint --version

STDOUT
(empty)

STDERR
Call to "proc_open()" to open a subprocess failed: proc_open(): CreateProcess failed, error code - 2 at [<arcanist>\src\future\exec\ExecFuture.php:409]
arcanist(head=master, ref.master=0da1a2e17d92)
  #0 ExecFuture::raiseResultError(array) called at [<arcanist>\src\future\exec\ExecFuture.php:313]

I then debugged it further, it uses proc_open method to execute the command, which returns bool(false). Even though I tried to run via shell:

jshint --version

It outputted: jshint v2.11.1

But same if proc_open does, it returned false.

php version : 5.4.9

arc version : arcanist 0da1a2e17d921dc27ce9afa76b123cb4c8b73b17 (30 May 2020)

My .arclint file contains this:

{
    "linters":{
       "jshint":{
           "type":"jshint",
           "include":"(\\.js$)"
       },
       "php":{
            "type":"php",
            "include":"(\\.php$)"
         }
    }
}

Best answer