5

望ましい動作

Sublime Text 3 を使用した .js ファイルのリンティング。

実際の動作

リンティングは発生していません。

たとえば、次の例ではエラーは表示されません。

var x = "" 

再現する手順

環境

  • Linux Mint 17 シナモン
  • Sublime Text ビルド 3065
  • Tools > SublimeLinter > Lint Mode > "Background"
  • Tools > SublimeLinter > Mark Style > "Fill"

Sublime Text (SublimeLinter と JSHint プラグインをインストールするため)

  • ctrl+shift+p
  • パッケージ コントロール: パッケージのインストール
  • SublimeLinter をインストールする
  • 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

また、パスを手動で変更してSublime Textを再起動することを含むこのソリューション( https://stackoverflow.com/a/21203179/1063287 )を試しましたが、変更はありませんでした:Preferences > Package Settings > SublimeLinter > "Settings - User"

"paths": {
    "linux": ["/usr/local/bin/jshint"],
    "osx": [],
    "windows": []
},

ドキュメント リファレンス

jshint プラグインのインストール方法:

https://github.com/SublimeLinter/SublimeLinter-jshint

アップデート

これをコマンド ラインで実行したところ、結果がトラブルシューティングに役立つ場合があります。

jshint --version
/usr/bin/env: node: No such file or directory

これは Sublime Text Console にも表示されます。

SublimeLinter: WARNING: no jshint version could be extracted from:
/usr/bin/env: node: No such file or directory
4

2 に答える 2

5

あなた(OP)が提供した解決策はうまくいきますが、いくつかの説明をし、問題を検証する方法を示し、他のオプションとおそらく少しのベストプラクティスを提供します(これはあなたが投稿したときにあなたが求めていたものです答え。

問題

問題は、jshint 実行可能ファイルが「ノード」インタープリターを使用して実行しようとしていて、システムがパス内の「ノード」という名前に一致する実行可能ファイルを見つけられないことです。(以前は「ノード」が標準名だったと思いますが、「ノード」名が一般的であり、他の実行可能ファイルと競合するという懸念があったため、現在は一般的に「nodejs」を使用して言及されています。)

何が起こっているかを確認する方法は次のとおりです... ターミナルで、次の手順を実行します。 「cat /usr/local/bin」を発行して内容を表示します。最初の行で、使用するインタープリターが指定されていることがわかります。これは、"node" ("nodejs" ではありません) です。

原因

現在、パッケージ マネージャーを使用して Node.js をインストールすると、「nodejs」という Debian パッケージが実行可能ファイル「/usr/bin/nodejs」を作成します。したがって、「ノード」実行可能ファイルを指定する他の実行可能ファイルは、それを見つけられず、機能しません。

修正

多くのオプションがあります:

  1. 最も迅速かつ簡単。「nodejs」を指す「ノード」のシンボリック リンク (事実上「ショートカット」) を作成します。あなたの答えにはこれのバージョンがありました。/usr/local/bin など、/usr/bin 以外の PATH 内の場所にこのリンクを配置することをお勧めします。ディレクトリは保護されているため、宛先にリンクを作成するにはスーパーユーザー権限が必要です。したがって、発行するコマンドは次のとおりです。

    sudo ln -s /usr/bin/nodejs /usr/local/bin/node"
  2. または、Node.js がまだインストールされていない (または現在のパッケージを削除した) システムを使用している場合は、パッケージ マネージャーを使用してインストールするときに、(nodejs の代わりに) 「nodejs-legacy」パッケージを使用します。このパッケージは実際にリンクを自動的に作成します。Node.js が既にインストールされている場合は、まずそれを削除する必要があります。

    • 「nodejs」パッケージを削除するには:
      sudo apt-get remove nodejs
    • 「nodejs-legacy」(リンクのあるもの)をインストールします
      sudo apt-get install nodejs-legacy
  3. 最後に、Node.js を手動でインストールするかビルドすることができます。これはもっと複雑なので、ここですべてを説明するつもりはありません。

検証

コマンド「jshint --version」を発行することで、jshint が実行できることを確認できます。コマンドは次のようになります。

$ jshint --version
    jshint v2.5.10

ハッピーリンティング!

于 2014-11-30T05:19:48.393 に答える