2017-02-15 6 views
2

私はthis答えを見つけましたが、私の問題は解決しませんでした。TypeScript 2をノードモジュールを見つけるために作るには?

私はTypeScriptを学んでいます。私がやっている何

は、このように簡単です:私は考えて何

TSError: ⨯ Unable to compile TypeScript 
db\installDB.ts (1,24): Cannot find module 'child_process'. (2307) 

がある:私はタイピングを持っていないので、それが「child_process」を見つけていない、このエラーをトリガ

import * as child from 'child_process'; 

そのため、私は@types/nodeを追加して、今見つけたと思っています。それはしませんでした。

何が問題ですか?

これは私のtsconfig.jsonです:

{ 
    "compilerOptions": { 
     "outDir": "./dist/", 
     "sourceMap": true, 
     "noImplicitAny": true, 
     "module": "commonjs", 
     "target": "es5", 
     "jsx": "react", 
     "allowJs": true 
    }, 
    "include": [ 
     "./db/**/*", 
     "./src/**/*" 
    ] 
} 
+0

どのようなタイプのモジュールは 'child_process'ですか?環境モジュールをインポートする最も簡単な方法は、https://www.typescriptlang.org/docs/handbook/modules.html#working-with-other-javascript-librariesで説明されている略語を使用することです – shusson

答えて

0

この構文を試してみてください:

import child = require('child_process'); 

これは、あなたが現在持っている代わりに、現在のES6スタイルの輸入のnodejsモジュールに使用commonjsスタイルのインポート、あります。

0

あなたは

webpack.config.js持っている場合は、これはIGNORES配列にリストされたモジュールを無視し、あなたのwebpack.config.json

externals: [ 
(function() { 
    var IGNORES = ["fs","child_process","electron","path","assert","cluster","crypto","dns","domain","events","http","https","net","os","process","punycode","querystring","readline","repl","stream","string_decoder","tls","tty","dgram","url","util","v8","vm","zlib"]; 
    return function (context, request, callback) { 
     if (IGNORES.indexOf(request) >= 0) { 
      return callback(null, "require('" + request + "')"); 
     } 
     return callback(); 
    }; 
})() 
], 

devConfigprodConfigに次の配列を追加します。

次に、 'Typescript'ファイルにあります。

declare var require:any; 
... 
... 
var exec = require('child_process'); 

あなたはwebpack.configを持っていないと、プロジェクトはWebPACKの上で作業している場合。 "node_modules/app_scripts/config"にあります。そのパスからコピーしwebpack.configと、プロジェクトのルートにconfigフォルダに保存し、あなたがSystemJS

を持っている場合は、あなたのpackage.json

"config": { 
    "ionic_bundler": "webpack", 
    "ionic_webpack": "./config/webpack.config.js" 
}, 

に次のコードを貼り付けシステムに次のコードを追加します。 config.js

System.config({ 
    map: { 
    'child_process': '@node/child_process' 
    } 
}); 
関連する問題