Поздний завтрак: заменить встроенный скрипт на «autoRequire» не работает - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь удалить <script> require('scripts/app').init(); </script> из моих шаблонов интерфейса, потому что Internet Explorer не нравится эта строка. Я вижу, что вы можете использовать ключ "modules.autoRequire" в конфигурации бранча, но я не могу заставить его работать.

Когда я пытаюсь использовать autoRequire: { 'scripts/app.js': ['scripts/app.js'] }, ничего не выводится и не запускается для меня. То же самое с autoRequire: { 'scripts/app.js': ['scripts/app'] }.

Когда я использую autoRequire: { 'scripts/app.js': ['init'] }, я получаю следующую ошибку auto-reload.js:61 Uncaught Error: Cannot find module 'init' from '/' Это единственная ошибка, с которой я когда-либо сталкивался при этой настройке.

бранч-config.js

module.exports = {
  paths: {
    public: 'web',
    watched: ['app', 'templates']
  },

  modules: {
    autoRequire: {
      'scripts/app.js': ['init']
    }
  },

  optimize: true,

  files: {
    javascripts: {
      entryPoints: {
        'app/scripts/app.js': 'scripts/app.js'
      },
      joinTo: {
        'scripts/auto-reload.js': '/node_modules/auto-reload-brunch/'
      }
    }
  }
};

app.js

'use strict';

const Pages = require('./pages');
const Global = require('./global');
const Components = require('./components');
const Home = Pages.Home;
const Happenings = Pages.Happenings;
const Leasing = Pages.Leasing;
const Updates = Pages.Updates;
const Events = Pages.Events;
const EventSlider = Components.EventSlider;

module.exports = {
  init: function(){
    Global.init();
    if($('.home-page').length){ new Home(); }
    if($('.leasing-page').length){ new Leasing(); }
    if($('.happenings-page').length){ new Happenings(); }
    if($('.updates-page').length){ new Updates(); }
    if($('.update-page').length){ new Updates(); }
    if($('.things-to-do-page').length){ new Events(); }

    if($('.event-slider').length){ new EventSlider(); }
  }
};

Мне бы хотелось, чтобы функция init в файле app.js запускалась при загрузке страницы!

1 Ответ

0 голосов
/ 11 июня 2019

Я понял это!

Свойство autoRequire должно выглядеть следующим образом:

autoRequire:  { 'scripts/app.js': ['scripts/app'] }

Моя проблема была внутри модуля, где я не сказал код для запуска.

const App = {
  init: function(){
    ...
  }
}
module.exports = App.init();

Где App.init() - важная пропущенная строка. Еще раз спасибо за вашу замечательную работу с brunch.io

...