我在widget.js中有一个名为“Widget”的类。代码如下:
export class Widget {
constructor(elem,data) {
this.elem = elem;
this.data = data;
}
init(){
......
}
}
字符串
然后我有一个index.js文件,其中包含以下代码:
import { Widget as defaultExport } from './lib/widget';
export default defaultExport;
型
使用Webpack,这个index.js文件被链接到HTML文件index.html。现在,我的HTML页面中有一个脚本标记,它试图导入Widget类并调用该类中的init函数。我一直在努力做到以下几点
<script>
$(document).ready(function() {
console.log("In document ready" );
let instance = new Widget(element,"data");
instance.init();
});
</script>
型
我的动机是通过index.js导入HTML文件中的Widget类,并调用init方法。当我尝试执行此操作时,我得到一个“未捕获的引用错误:未找到小工具”。我试着用“new defaultExport
“代替new Widget
,也不起作用。我还尝试了"import Widget from 'index.js'"
,它给了我“Uncaught SyntaxError:意外的标识符“”。我尝试将脚本类型设置为“module”,它不执行jquery块(请参阅以下块):
<script type="module">
import Widget from './src/index'
$(document).ready(function() {
console.log("In document ready" );
let instance = new Widget(element,"data");
instance.init();
});
</script>
型
你能帮我解决这个问题吗
编辑:我注意到在开发者控制台的Elements部分,index.js文件的脚本导入标签被添加到HTML文件中的标签之后(请参见下文)。这可能是这个引用错误的原因吗?
<html>
<body>
<script>
..........
</script>
<script src = '/index.js'></script>
</body>
</html>
型
1条答案
按热度按时间6jygbczu1#
您需要使用输出.库配置。
输出一个库,公开入口点的导出。
例如:
项目结构:
字符串
src/index.js
:型
src/widget.js
:型
src/index.html
:型
webpack.config.js
:型
构建日志:
型
输出
dist/index.html
:型
dist/widget.js
:型
package.json
:型
启动HTTP服务器以提供
dist/index.html
文件。浏览器的控制台日志:型