【发布时间】:2019-09-27 03:16:02
【问题描述】:
我正在编写我的第一个 JS 库,想学习使用 babel 和 webpack。
我遇到的问题是我想在 index.htm 文件中实例化的类(入口点?)导致浏览器抱怨它“未定义”。
这是我的 webpack 配置:
const path = require('path');
module.exports = {
entry: path.resolve(__dirname, './src/js/FormrEditor.js'),
output: {
filename: 'formr-editor.js',
path: path.resolve(__dirname, 'dist/js'),
},
devtool: "source-map",
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: '/node_modules/',
query: {
presets: ['@babel/env']
}
}
]
},
};
还有js:
import {Toolbox, ToolboxItem} from "./Toolbox";
export default class FormrEditor{
constructor(element, config){
/** Find the element to use as the container */
if(element instanceof Element)
this.container = element;
else
this.container = document.getElementById(element);
this.container.classList.add("feditor")
this.buildEditorDom();
}
buildEditorDom()
{
let form = document.createElement("div");
form.classList.add("feditor-form");
let toolbox = document.createElement("div");
toolbox.classList.add("feditor-toolbox");
let handle = document.createElement("div");
handle.classList.add("feditor-toolbox-handle");
let testItem = document.createElement("div");
testItem.classList.add("feditor-toolbox-item");
toolbox.appendChild(handle);
toolbox.appendChild(testItem);
this.container.appendChild(form);
this.container.appendChild(toolbox);
this.toolbox = new Toolbox(toolbox);
this.form = form;
}
}
所以在我正在做的index.htm 文件中:
<script src="formr-editor.js"></script>
<script>
import FormrEditor from "./formr-editor";
var formr = FormrEditor(document.getElementById('editor'), {});
</script>
这就是它抱怨 FormrEditor 没有定义的时候......
更多信息:
我正在从“演示”文件夹中提供 index.htm,其中我有指向 formr-editor.js(webpack 的输出)和 css 的符号链接。
我也按照 MarcRo 尝试了 var formr = new FormrEditor(document.getElementById('editor'), {}); 没有 import ,但我仍然遇到同样的错误。
我已经在课堂上尝试过export 和export default,但什么都没有...
【问题讨论】:
标签: javascript webpack babeljs