我在1个文件中有一个骨干视图,我试图在另一个文件中实例化,'条目'文件。使用Webpack捆绑输出文件,并在视图代码之前首先在输出文件中加载条目文件。像这样:
index.js:
import $ from 'jquery';
import { Book } from './views/Book';
$(document).ready(function () {
new Book();
});
Book.js
import Backbone from 'backbone';
const Book = Backbone.View.extend({
tagName: 'li',
template: _.template('<%= name %>'),
render: function () {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
export default Book;
在运行项目时,我在控制台中收到此错误:
TypeError: __WEBPACK_IMPORTED_MODULE_1__views_Book__.Book is not a constructor
at HTMLDocument.<anonymous>
index.js:5 Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_1__views_Book__.Book is not a constructor
运行webpack时,我收到此警告:
WARNING in ./js/index.js
5:6-10 "export 'Book' was not found in './views/Book'
我看到一些关于循环依赖的帖子,但不要认为这是问题所在。有人可以帮忙吗?谢谢!
答案 0 :(得分:1)
如果您使用
export default Book
然后你需要以这种方式加载
import Book from './views/Book';
export Book
可以使用
import { Book } from './views/Book';
答案 1 :(得分:0)
好的,修复程序正在改变我的webpack配置文件中的入口点。我更改了入口点:
entry: '/index.js'
到
entry: [SRC_DIR + '/views/main.js', SRC_DIR + '/index.js']
这确保首先加载依赖项(在main.js中),然后加载index.js文件。因此,在捆绑的输出文件中,依赖项(在本例中为Book视图)在初始化之前实现。因此问题不在我发布的代码中,而是在Webpack的配置文件中。