Пагинатор позвоночника ломает Webpack
У меня есть небольшое приложение, которое использует Webpack и backbone.paginator. Он отлично работает без веб-пакета.
С веб-пакетом, когда мне требуется backbone.paginator в моей коллекции, он полностью разрушает приложение. Мне даже не нужно использовать paginator, просто требуя, чтобы он сломал приложение. На самом деле он создает коллекцию с возможностью постраничного отображения и работает правильно, но если я попытаюсь создать представление после запроса paginator, он скажет, что Backbone.Marionette не определен.
Вот модель:
var User = require("../models/User");
var PageableCollection = require("backbone.paginator");
var Users = Backbone.PageableCollection.extend({
url: 'http://localhost:8000/api/users',
model: User,
});
module.exports = Users;
Если есть какие-то взгляды, как только мне это понадобится, будет ошибка. Если я удаляю require('backbone-paginator'), ошибок не будет.
Вот мой webpack.config.js:
const webpack = require("webpack");
const path = require("path");
var HtmlWebpackPlugin = require("html-webpack-plugin");
var HtmlWebpackPluginConfig = new HtmlWebpackPlugin({
template: path.join(__dirname, 'app', 'index.html'),
filename: 'index.html',
inject: 'body'
});
var paths = {
ENTRY: path.join(__dirname, 'app', 'main.js'),
OUTPUT_FILENAME: "bundle.js",
OUTPUT: path.join(__dirname, "app", 'static'),
APP: path.join(__dirname, 'app')
};
module.exports = {
entry: [
paths.ENTRY
],
devServer: {
contentBase: "./app"
},
resolve: {
alias: {
"marionette": "backbone.marionette"
}
},
module: {
preLoaders: [
{
test: /\.js$/,
include: __dirname + '/app',
exclude: [/node_modules/, paths.APP + '/public', paths.APP + '/bower_components'],
loader: 'jshint-loader'
}
],
loaders: [
{ test: /\.html/, include: paths.APP + '/templates', loader: "underscore-template-loader" }
],
},
output: {
filename: paths.OUTPUT_FILENAME,
path: paths.OUTPUT
},
plugins: [
HtmlWebpackPluginConfig,
new webpack.ProvidePlugin({
$: 'jquery',
_: 'underscore'
}),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
}),
// new webpack.optimize.DedupePlugin(),
// new webpack.optimize.OccurenceOrderPlugin(),
// new webpack.optimize.UglifyJsPlugin({
// compress: { warnings: false },
// mangle: true,
// sourcemap: false,
// beautify: false,
// dead_code: true
// })
]
};
Редактировать: я удалил почти все и сократил его до этого:
var Marionette = require('marionette');
var PageableCollection = require("backbone.paginator")
var Users = Backbone.PageableCollection.extend({
url: 'http://localhost:8000/api/users'
})
var UsersView = Backbone.Marionette.View.extend({
tagName: 'div',
template: _.template("hello")
})
Это не позволит мне определить представление после запроса backbone.paginator. Если я console.log Marionette, он все еще там, но когда я определяю представление, оно говорит, что оно не определено.