Backbone.js 获取主干.ChildViewContainer不是使用browserify&;的构造函数;es6

Backbone.js 获取主干.ChildViewContainer不是使用browserify&;的构造函数;es6,backbone.js,ecmascript-6,marionette,Backbone.js,Ecmascript 6,Marionette,我正在尝试使用browserify和es6建立一个木偶项目。创建CollectionView时,我收到错误uncaughttypeerror:Backbone.ChildViewContainer不是构造函数 我是不是漏装了什么东西?在互联网上找不到关于这个的任何信息 以下是我的收藏视图: import {ItemView, CollectionView} from 'backbone.marionette'; import navTemplate from '../templates/navi

我正在尝试使用browserify和es6建立一个木偶项目。创建CollectionView时,我收到错误
uncaughttypeerror:Backbone.ChildViewContainer不是构造函数

我是不是漏装了什么东西?在互联网上找不到关于这个的任何信息

以下是我的收藏视图:

import {ItemView, CollectionView} from 'backbone.marionette';
import navTemplate from '../templates/navigation.hbs';
import navItemTemplate from '../templates/_navItem.hbs';

var NavigationItem = ItemView.extend({
    template: navItemTemplate
});

var NavigationView = CollectionView.extend({
    template: navTemplate,

    childView: NavigationItem,

    childViewContainer: '.left-navigation',
});

export default NavigationView;
我的布局就是这样创造的

import {LayoutView} from 'backbone.marionette';
import layoutTemplate from './templates/layout.hbs';

import NavigationView from './Views/navigation';

export default class AppLayout extends LayoutView {
  constructor(options) {
    super(options);

    this.template = layoutTemplate;
  }

    regions() { 
        return {
            'navigation': '.left-aside'
        };
    }

    onRender() {
        console.log(this.getRegion('navigation'));
        this.getRegion('navigation').show(new NavigationView());
    }
}
我还使用了一个垫片来使用backbone.radio,但这不会影响:

(function(root, factory) {
  if (typeof define === 'function' && define.amd) {
    define(['backbone.marionette', 'backbone.radio', 'underscore'], factory);
  } else if (typeof exports !== 'undefined') {
    module.exports = factory(require('backbone.marionette'), require('backbone.radio'), require('underscore'));
  } else {
    factory(root.Backbone.Marionette, root.Backbone.Radio, root._);
  }
}(this, function(Marionette, Radio, _) {
  'use strict';

  Marionette.Application.prototype._initChannel = function () {
    this.channelName = _.result(this, 'channelName') || 'global';
    this.channel = _.result(this, 'channel') || Radio.channel(this.channelName);
  };
}));

编辑:我发现我编译的文件有很多主干的副本,所以这可能是问题所在…

今天早上使用一个旧的JSPM配置文件指向木偶2.4.1和主干1.2.1时出现了同样的错误,Google将我链接到了这里。。。更新到最近的木偶2.4.5和主干1.3.2版本似乎可以解决我的问题。您正在运行什么版本?

我在Webpack中遇到了这个问题。我可以通过在webpack.config.js中指定别名来解决这个问题

resolve: {
    extensions: ['', '.js', '.ts'],
    alias: {
        'backbone': 'backbone.marionette/node_modules/backbone'
    }
},
i、 e.确保对主干网的所有引用使用作为木偶网依赖项安装的主干网

我从未使用过Browserify,但也许您可以通过安装并将其添加到您的package.json中来执行类似操作:

{
"aliasify": {
    "aliases": {
        "backbone": "backbone.marionette/node_modules/backbone"
    }
}

我也有同样的问题,但是使用了TypeScript和Webpack-在我更新我的npm包之前,这一切都很好。据我所知,我使用的是木偶2.4.5和主干1.3.3^这也是我的版本。我想这是因为在我编译的文件中有多个主干定义,但只有一个主干。保姆你知道为什么会有多个主干定义吗?很乐意帮助。这是webpack还是browserify?这是webpack。谢谢你,它也解决了木偶认可者的问题。