使用webpack构建带有脚本标记的库导入表
我有一个网页包项目,我在那里建立了几个图书馆。这两个标签都是用使用webpack构建带有脚本标记的库导入表,webpack,Webpack,我有一个网页包项目,我在那里建立了几个图书馆。这两个标签都是用标签导入的。我的配置如下所示: entry: { bundle: ['./src/index', 'webpack-hot-middleware/client?reload=true'], mylib: ['./src/loader', 'webpack-hot-middleware/client?reload=true'] }, target: web, output: { path: `${__dirname}/dis
标签导入的。我的配置如下所示:
entry: {
bundle: ['./src/index', 'webpack-hot-middleware/client?reload=true'],
mylib: ['./src/loader', 'webpack-hot-middleware/client?reload=true']
},
target: web,
output: {
path: `${__dirname}/dist`,
publicPath: 'http://localhost:3000/',
filename: '[name].js',
library: ['mylib', '[name]'],
libraryTarget: 'umd'
},
对于我的测试,我的切入点非常简单:
module.exports = 'abracadabra';
根据我遵循的指南,如果我理解正确,这应该足以在浏览器中获得此行为(在打开带有脚本标记的索引html文件后):
但是,这不起作用,在浏览器的控制台中,我可以看到定义了mylib,但它有一个奇怪的形状:
Object {mylib: Object}
mylib: Object
subscribe: function subscribe(handler)
useCustomOverlay: function useCustomOverlay(customOverlay)
__proto__: Object__proto__:
其中一些代码与HMR(热模块替换)有关,但我仍然不明白应该如何使用我的模块
有什么想法吗?你的入口点有这个吗
if (module.hot) {
module.hot.accept();
}
你的入口点有这个吗
if (module.hot) {
module.hot.accept();
}
我读过,现在我明白我需要包括这些行来启用HMR。然而,它们并不能解决问题。现在,我将我的导出附加到窗口以继续开发:window.mylib=module.exports;我将上传一个示例项目到Github以探索这个问题,并尽快征求建议…我做了一些快速测试,在我的设置中,即使我没有添加上述行,Webpack似乎也会重新加载我的模块…奇怪?如果module.hot为真,那么module.exports将在入口点包含导出的内容。不知道从这里到哪里去。我读了,现在我明白我需要包括这些行来启用HMR。然而,它们并不能解决问题。现在,我将我的导出附加到窗口以继续开发:window.mylib=module.exports;我将上传一个示例项目到Github以探索这个问题,并尽快征求建议…我做了一些快速测试,在我的设置中,即使我没有添加上述行,Webpack似乎也会重新加载我的模块…奇怪?如果module.hot为真,那么module.exports将在入口点包含导出的内容。不知道从这里到哪里去。