Отключить «включить все изображения» при загрузке изображений динамического пути в vue-cli - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь загрузить изображение динамически в Vue, например:

computed: {
  background () {
    return require('./bgs/' + process.env.VUE_APP_SOME_VAR + '.jpg')
  }
}

Однако, согласно этому сайту (https://vuejs -templates.github.io / webpack / static.html в разделе «Получение путей к активам в JavaScript») произойдет следующее:

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

Однако для меня эта переменная устанавливается только один раз в переменных среды.Так что это никогда не меняется во всем приложении.И мне не нужны все изображения, которые включены по умолчанию.Можно ли случайно изменить это поведение?

1 Ответ

0 голосов
/ 18 апреля 2019

Я нашел хороший ответ на этот вопрос с помощью псевдонимов благодаря https://stackoverflow.com/a/53603600/4349566.

Я добавил новый псевдоним для vue.config.js, например:

module.exports = {
  // Some less important stuff

  configureWebpack: {
    resolve: {
      alias: {
        "~vendor": require("path").resolve(
          __dirname,
          "src/assets/" + process.env.VUE_APP_SOME_VAR
        )
      }
    }
  }
};

И тогда я мог бы использовать требование следующим образом: require('~vendor/images/banner-large.jpg'). Так что теперь, когда я строю, это не включает нежелательные изображения.

...