victorzadorozhnyy
@victorzadorozhnyy

Как задать имя для chunk через require.ensure?

В приложении идет разделение на чанки с помошью require.ensure и всем этим процессом рулит реакт роутер.

Папка с индексом в которую идет обращение
module.exports = function(location, cb) {
    if (typeof require.ensure == 'function') {
        /* Asynchronous loading of a component
        that is inside of require.ensure */
        require.ensure([], (require) => {
            cb(null, require('./Reports'), 'reports')
        })
    } else {
        /* Server side synchronous loading */
        cb(null, require('./Reports'), 'reports');

    }
}


Роутер
<Route  path="Reports" getComponent={
                                        (location,cb)=>require('./Reports/index')(location,cb)
                                        }> </Route>

Webpack
output: {
    path: path.join(__dirna
    filename: 'bundle.js',
   chunkFilename: '[name].bundle.js' //в моем случае имя выглядит 1.bundle.js
  },

Как обычно
//если задавать так, то все идет по плану и файл получается reports.bundle.js
//как сделать эту магию в моем случае?
componentDidMount(){
        var Reports;
        require.ensure([], function(require) {
            Reports = require('./Reports').default;
            render(<Reports/>, document.getElementById('fl'));
        }, 'reports');
    }
  • Вопрос задан
  • 323 просмотра
Решения вопроса 1
Имя чанка задается в третьем параметре require.ensure. Попробуйте вот так:
module.exports = function(location, cb) {
  if (typeof require.ensure == 'function') {
    require.ensure([], (require) => {
      cb(null, require('./Reports'))
    }, 'reports'); // третий параметр
  } else {
    cb(null, require('./Reports'));
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 10:55
2500 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект