2017-10-16 2 views
2

Node.jsパッケージがグローバルにインストールされている場合、それらはNode.jsアプリケーションで使用できます。しかし、これらのパッケージがプロジェクトディレクトリ(サブディレクトリnode_modules内)にローカルにインストールされていない限り、Visual Studio Codeはこれらのパッケージを受け入れず、エラーを示します。例えばVSコードでグローバルノードパッケージを使用する方法

import * as net from 'net'; 

... 'net'は限り、あなたはnpm install --save @types/nodeをインストールしないよう赤い下線が付いています。そのパッケージをnpm -g install @types/nodeでグローバルにインストールすると、パッケージは利用可能になりますが、コード(V 1.17.1)はそれを認識しません。

私の質問ですが、グローバルにインストールされたNode.jsパッケージを認識するようにコードを設定する方法はありますか?

+0

興味深い質問では、なぜ動作しないのかは分かりませんが、 'npm install --save-dev @ types/node'を実行して、プロジェクトでも作業している他の開発者グローバルにタイプ/ノードをインストールする必要はありません。 – kentor

+0

私はあなたが好きです、私はプロジェクト内のすべてのパッケージをローカルにインストールします。しかし、なぜコードがグローバルにインストールされたパッケージを認識できないのか興味深い。パッケージがグローバルにインストールされていれば、プロジェクトを実行して動作させることができるからです。コードはエラーを示しますが、間違った表示です。 –

+0

VSCodeのgitリポジトリに問題を作成することができます。非常に反応がよく、回答が得られるでしょう;-)。 – kentor

答えて

1

グローバルコード用のIntelliSenseは、VSコード1.18ではサポートされていません。この機能が本当に必要な場合はagainst TypeScriptを提出してください。

しかし、VSコードでJavaScriptを使って作業する場合、本当に@typesパッケージをインストールする必要はありません。 Automatic types acquisitionをダウンロードしてダウンロードしてください。活字体プロジェクトでは、あなたのjsconfig.json

"typeAcquisition": { 
    "include": [ 
     "node" 
    ] 
} 

に以下を追加することで、ダウンロードするこれらの型を強制、あなたはDEVの依存関係としてローカル@typesをインストールする必要があり、明示的にもあります。

+0

あなたはそうです、それはタイスクリプトの問題のようです。 jsconfig.jsonの 'typeAcquisition'は、typescriptレベルでは動作しません。 typescriptでは、 'NODE_PATH'やtsconfig.js(compilerOptions/typeRoots)内のグローバルモジュールパス設定などの環境変数も無視されます。型定義がローカルにインストールされていない限り、変換は失敗します。 –

+0

その問題の新しい[質問](https://stackoverflow.com/questions/46946205/how-to-use-global-node-packages-with-typescript)を作成してください。 –

関連する問題