TypeScriptモジュールを処理してバンドルするためにwebpackを使用していますが、外部から利用できるモジュール/チャンクが必要です。これはどうすればいいですか?WebpackとTypescriptを使用してグローバルWindowオブジェクトにモジュールを公開
追加情報
コードは異なるディレクトリに分割され、各ページ(/成分)のための1つ。すべてのページには複数のファイルがあり、各ファイルにはモジュールが含まれています。
js/
├ page1/
| ├ entry.ts
| ├ module1.ts
| └ module2.ts
├ page2/
| ├ entry.ts
| ├ module3.ts
| └ module4.ts
活字体モジュールは
import {Module2} from "./module2";
export module Module1 {
export function someFunc():int {
return Module2.someVal;
}
}
のように定義されていて、私がコンパイルし、ページごとにモジュールをバンドルするがぶ飲み-のWebPACKを使用しています:
gulp.task('javascript', function() {
return gulp.src('src/js/**/entry.ts')
.pipe(named(function (file) {
// Sets file.named to the containing directory name (used by webpack)
return path.dirname(file.path).substr(path.dirname(file.path).replace(/\\/g, '/').lastIndexOf('/') + 1);
}))
.pipe(webpack({
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
},
module: {
loaders: [
{test: /\.tsx?$/, loader: 'ts-loader'}
]
},
plugins: [
new CommonsChunkPlugin({
name: "bundle",
minChunks: 3
})
],
output: {
filename: '[name].js'
},
devtool: 'source-map'
}))
.pipe(gulp.dest('dest/js'))
});
それは次のようになります
Module1.someFunc()
は、グローバルスコープからアクセスできるようにする必要があるため、他の(外部の)コンポーネントで使用することができます。私はexpose loaderを見てきましたが、この状況でどのように動作するかわかりません。
ご協力いただければ幸いです!
'import x ='の部分がなくても、あなたはrequireを持っていますか? –
これはちょうど 'import" expose-loaderとして機能していると思われますか?M1!./ module1 "' – IronSean