2017-04-05 8 views
3

awesome-typescript-loaderまたはwebpackまたはtscを設定して、エントリから(直接的、間接的に)参照されるファイルをコンパイルすることはできますか?私は既存のアプリケーションを移植したいが、部分的に移植されたコードをコンパイルできるようにしたいが、未参照のファイルはコンパイルできない。awesome-typescript-loader refrencedファイルのみをロード/コンパイル

使用するツール

  • 素晴らしい-typescriptです-ローダー:3.1.2、
  • のWebPACK:2.3.3

webpack.js

var webpack = require('webpack'); 
module.exports = { 
    entry: { 
     'index': './Scripts/index.ts', 
    }, 

    output: { 
     path: helpers.root('dist'), 
     filename: '[name].js' 
    }, 

    resolve: { 
     extensions: ['.ts', '.js'] 
    }, 
    module: { 
     rules: [ 
      { 
       test: /.ts$/, 
       loader: 'awesome-typescript-loader' 
      } 
     ] 
    } 
} 

(index.tsによって参照されていないファイルから)エラーメッセージ

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "importHelpers": true, 
    "typeRoots": [ 
     "node_modules/@types" 
    ], 
    "sourceMap": true, 
    "lib": [ 
     "dom", 
     "es5", 
     "scripthost" 
    ], 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true, 
    "noImplicitAny": false, 
    "suppressImplicitAnyIndexErrors": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

のTSconfig

[at-loader] Checking started in a separate process... 

[at-loader] Checking finished with 46 errors 
Hash: a2f6e7a56b152c02a325 
Version: webpack 2.3.3 
Time: 3554ms 
    Asset  Size Chunks    Chunk Names 
index.js 2.73 kB  0 [emitted] index 
    [0] ./Scripts/index.ts 79 bytes {0} [built] 

ERROR in [at-loader] ./Scripts/editor/foo.ts:47:61 
    TS2448: Block-scoped variable 'eventList' used before its declaration. 

... MORE ERRORS ... 

npm ERR! Windows_NT 10.0.14393 
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build" 
npm ERR! node v6.9.2 
npm ERR! npm v3.10.9 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] build: `webpack --config webpack.config.js` 
npm ERR! Exit status 2 
npm ERR! 
npm ERR! Failed at the [email protected] build script 'webpack --config webpack.config.js'. 
npm ERR! Make sure you have the latest version of node.js and npm installed. 
npm ERR! If you do, this is most likely a problem with the FooBar package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  webpack --config webpack.config.js 
npm ERR! You can get information on how to open an issue for this project with: 
npm ERR!  npm bugs FooBar 
npm ERR! Or if that isn't available, you can get their info via: 
npm ERR!  npm owner ls FooBar 
npm ERR! There is likely additional logging output above. 

npm ERR! Please include the following file with any support request: 
npm ERR!  D:\FooBar\npm-debug.log 
+0

Webpackにはインポートされる(エントリポイントから開始する)ファイルのみが含まれているため、ルールにさらに一致するローダーのみが適用されます。私はここであなたの問題を見ていないよ。 –

+0

'[at-loader]別のプロセスでチェックを開始しました... [at-loader]参照されていないファイルで49エラーでチェック済みです。 –

答えて

8

のWebPACK自体がインポートされていないすべてのファイルが含まれていません。しかし、別の方法で構成されていない限り、TypeScriptはプロジェクト内のすべてのファイルをチェックしているようです。 tsconfig.json docsから:

「ファイル」との両方の未指定のままにしている「が含まれる」、コンパイラのデフォルトもし入っているディレクトリとサブディレクトリ内のすべての活字体(.TS、.d.tsと.tsx)ファイルを含むへ除外プロパティを使用して除外されたものを除きます。

filesオプションは、エントリポイントのみを含めるように設定できます。インポートするファイルのみをチェックする必要があります。私がテストしてみたよう

"files": [ 
    "Scripts/index.ts" 
] 

は限り、あなたはまた、空の配列に設定することができますので、デフォルトですべてのファイルをチェックしませんし、期待通りawesome-typescript-loaderは、コンパイラにファイルを渡します、そして、彼らはまだでしょうチェックされる。

"files": [] 
+1

"files":[]はawesome-typescript-loaderで動作するようですが、TS18002でts-loaderとtscが壊れます。設定ファイル 'tsconfig.json'の 'files'リストが空です。 – ericsicons

+0

この方法は、webpack 3.10.0とawesome-typescript-loader 3.4.1では動作しません。なんらかの理由でATLには、refferencedのみを含めるのではなく、すべてのファイルが含まれています。 –

関連する問題