justinhelmer
1/24/2018 - 9:22 PM

multi entry (aka dual brand) - without context.add or context.load - method 2

multi entry (aka dual brand) - without context.add or context.load - method 2

/**
 * @file src/component.js
 */
import FooView from `./views/common/foo.js`;

const fooView = new FooView({ el: '#wrapper' });

fooView.func1(); // outputs "common"
fooView.func2(); // outputs "not common"
fooView.func3(); // outputs "bar"

/**
 * @file src/views/common/foo.js
 */
import * as FooUtil from `../utils/${process.env.ENTRY_POINT}/foo-util.js`;
import template from `../templates/${process.env.ENTRY_POINT}/foo.hbs`; // entry-specific HTML overrides
import '../scss/common/foo.scss'; // common css
import `../scss/${process.env.ENTRY_POINT}/foo.scss`; // entry-specific css overrides

const CommonFooView = Backbone.View.extend({
  template,
  type: 'common',
  func1() {
    console.log('common');
  },
  func2() {
    console.log(this.type);
  },
});
  
_.extend(FooView.prototype, FooUtil);
export default FooView;

/**
 * @file src/utils/entry-1/foo-util.js
 */
const type = 'not common';
const func3 = () => {
  console.log('bar');
}

export { type, func3 };