2016-03-04 4 views
6

:適切に構築された出力機能ながら「node_modules」にインストールされているモジュールをTypeScriptで見つけることができないのはなぜですか?次のディレクトリ構造を考えると

{project}/ 
    |-- node_modules/ 
    | |-- lodash 
    |-- src/ 
    | |-- index.ts 
    |-- lib/ (output) 
    | |-- index.js 
    | |-- index.d.ts 
    |-- package.json 
    |-- tsconfig.json 

tscコマンドは、私は、次のいずれかを使用する場合、それはlodashモジュールを解決できないと文句を言います:

import _ from "lodash"; 
import _ = require("lodash"); 
import * as _ from "lodash"; 

私は、次のものが含まれていた私の「tsconfig.json」ファイル内部:

... 

"target": "es6", 
"sourceMap": true, 
"module": "commonjs", 
"moduleResolution": "node", 

... 

しかし、にもかかわらず、これはまだnpmを使ってインストールされたモジュールを見つけることができません。

TypeScriptでこれらのモジュールを見つけるために必要なものがありませんか?

TypeScript定義ファイルがなければ、TypeScriptは追加の型チェックを行うことができません。しかし、確かにこれらはデフォルトのany型にデフォルトする必要がありますか?

+1

あなたは活字体1.6を持っていることを確認してください高い。 1.6より前にどのように "働いていたか"、どのようにしてそれが「うまくいくか」(https://medium.com/@mweststrate/how-to-create-strongly-typed-npm-modules-1e1bda23a7f4#.ci86154ph)後に働く。 –

答えて

5

lodashはnode_modules/lodashフォルダに定義ファイルを持っていないので動作しません。あなたはタイピングを使用して、それをダウンロードしたり、代わりに輸入の周囲の宣言を使用する必要があります:あなたが使用する必要があるだろうNode.jsのために

declare var _: any; 

var _ = require('lodash'); 
関連する問題