Webpack 网页包公开本地模块
如果我有以下模块:Webpack 网页包公开本地模块,webpack,Webpack,如果我有以下模块: // ./lib/foo.js const foo = 'hello'; export default foo 我想把它作为一个全球性的。我已将其加载到网页配置中的供应商条目中: entry: { vendor: [..., './lib/foo'] } 我尝试了以下方法: plugins: [ new webpack.ProvidePlugin({ './lib/foo': 'foo' }) ] 或: 在这两种变体中,都尝试使用窗口。前缀。但它不会
// ./lib/foo.js
const foo = 'hello';
export default foo
我想把它作为一个全球性的。我已将其加载到网页配置中的供应商条目中:
entry: {
vendor: [..., './lib/foo']
}
我尝试了以下方法:
plugins: [
new webpack.ProvidePlugin({
'./lib/foo': 'foo'
})
]
或:
在这两种变体中,都尝试使用
窗口。
前缀。但它不会暴露出来。已经尝试在我的应用程序条目文件中添加一个require('./lib/foo')
,因为的文档似乎表明这是必要的。这是您希望在其他区域使用的供应商模块的一部分,还是您正在构建的JS库?我不知道如何全局公开模块,但您可以使用require获得近似值。检查my,它是关于通过根路径导入TypeScript中的模块,而不使用。
,/
,等等。但它同时与webpack相关。我不确定最终目标是什么:假设最终目标是构建并公开您想要使用的JS库,我想您可以尝试将foo作为库公开。以下是提供的文档中的一个示例:这是我为我的工作所做的。我不确定expose loader插件如果你只想公开一个特定的模块,那么我也不确定。我想全局公开这个模块,这样我就不必到处导入它,基本上,它是fetch
的扩展,用于添加一些自定义功能,我希望它可以在window.customFetch
上使用。我想我只是想让它成为图书馆目标的一个globalLook。你可以捆绑,这样你就可以得到一个全局的。
module: {
loaders: [
{ test: require.resolve('./lib/foo'), loader: 'expose?foo' }
],
}