Компиляция блоков без ссылок при сборке веб-пакета - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть проект Vue / Webpack, который состоит из основного приложения и набора фирменных модулей. Эти модули не просто логотип и тема; они включают в себя набор значений хранилища по умолчанию и определение используемых маршрутов / представлений.

Весь пакет находится в корзине s3, и мы маскируем перенаправление различных URL-адресов, чтобы указать на него. Когда пользователь попадает на сайт: 1) загружается основное приложение, 2) он просматривает домен, чтобы определить, какой фирменный модуль требуется, и 3) выполняет асинхронный запрос для соответствующего модуля.

Мой код в настоящее время выглядит примерно так:

App.vue

...
.mounted () {
    if (this.$route.params.sitename === 'strawberry') {
        import(/* webpackChunkName: "strawberry" */ '@/strawberry');
    }
    else if (this.$route.params.sitename === 'chocolate') {
        import(/* webpackChunkName: "chocolate" */ '@/chocolate');
    }
    else {
        import(/* webpackChunkName: "vanilla" */ '@/vanilla');
    }
}

В идеале я бы заменил вышеперечисленное на что-то вроде:

...
.mounted () {
    import('@/' + this.$route.params.sitename);
}

Но если я не укажу явно все возможные импорты, webpack не скомпилирует эти куски при сборке.

Итак, возможно ли что-то подобное? Есть ли способ дать webpack список файлов без ссылок для его компиляции при сборке? и если да, то как мне ссылаться на них в моем коде? Будет ли оно автоматически совпадать с @/strawberry с strawberry.chunk?

Менее важные последующие действия: является ли app.mounting лучшим местом для этого?

...