2
我正在使用webpack來處理和捆綁我的TypeScript模塊,但是我需要一些可從外部使用的模塊/塊。我該怎麼做呢?使用Webpack和Typescript將模塊公開到全局Window對象
附加信息
該代碼是在不同的目錄分裂,一個用於每個頁面(/分量)。每個頁面都包含多個文件,每個文件都包含一個模塊。它看起來是這樣的:
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 ='部分,你能逃脫嗎? –
這也好像只是'import'expose-loader?M1!./ module1「' – IronSean