TypeScriptで書かれたプロジェクトがあり、それをデバッグできるようにしたい(Chrome Dev Tools
またはIntellij
のいずれか)。
最初、TypeScriptのimport
機能がサポートされていないことがわかりました。そこで、webpack dev server
とともにWebpack
を使用しようとしましたが、これは完全に失敗しました。アプリケーションが動作していても(すべてのコードを含む単一のbundle.js
ファイルがあるため)、指定されたソースマップとコードを一致させることができず、デバッグが不可能になります。
Webpackの使用を停止した後、require.js
エラーを解決するために、依存関係としてrequire is not defined
を追加しようとしました。それはうまくいきましたが、今私は再び立ち往生し、これを取得しています:
キャッチされないReferenceError:エクスポートは定義されていません
なぜこれが機能しないのかわかりません。アプリケーションを(webpackを介して、またはトランスコンパイル後にインポートステートメントを解決できるように)動作させ、TypeScriptで作成されたソースマップを使用してコードをデバッグできるようにします。どうすればこれを達成できますか?
何かが足りない場合に備えて、設定ファイルを添付しています。
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"sourceMap": true
},
"include": [
"scripts/**/*"
],
"exclude": [
"node_modules"
]
}
webpack.config.js:
module.exports = {
resolve: {
extensions: [/*'.ts', '.tsx', */'.js']
},
entry: './scripts/main.js',
output: {
path: '/',
filename: 'app.js'
},
module: {
rules: [
{ test: /\.js$/, loader: 'source-map-loader', enforce: 'pre' }
],
loaders: [
{ test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules/ },
{test: /\.css$/, loader: "style!css"}
]
},
watch: true
};
Webpackでデバッグを有効にするには、devtool: "source-map"
をwebpack.config.js
に追加します。
require.js
を使用してファイルをロードするには、"module": "AMD"
のtsconfig.json
を変更します。 require.js
は、commonjs
モジュールのロードをサポートしていません。