Как webpack и sass-загрузчик обрабатывают перекрывающиеся записи resol.alias? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть ситуация, когда я создал конфигурацию веб-пакета по этим направлениям (хотя, вероятно, это плохая идея):

module.exports = {
  //...
  resolve: {
    alias: {
      something/aliased: path.resolve(__dirname, 'src/something/'),
      something/aliased/more/specifically: path.resolve(__dirname, 'src/more_specific/')
    }
  }
};

Я использую эту конфигурацию с sass-loader, и код, который выдает ошибки, выглядит следующим образом:

@import "~something/aliased/more/specifically/foo/bar";

Когда я строю, я получаю ошибки по следующим направлениям:

ERROR in ./~/css-loader?{}!./~/sass-loader?{}!./some/component/with/sass/imports.scss
Module build failed: 
@import "~something/aliased/more/specifically/foo/bar";
^
      File to import not found or unreadable: ~something/aliased/more/specifically/foo/bar
Parent style sheet: stdin

Кажется, что веб-пакет всегда выбираетиспользуйте запись something/aliased, а не запись something/aliased/more/specifically - независимо от их порядка.

Я почти уверен, что эта ошибка связана с тем, что /src/more_specific/foo/bar существует, а src/something/.../foo/bar нет;удаление записи something/aliased в конфигурации веб-пакета устраняет эти ошибки, но (очевидно) это не делает псевдоним, который я хочу.

Как веб-пакет обрабатывает перекрывающиеся resolves.alias записи, подобные этой?Есть ли способ контролировать, какой псевдоним он выбирает?

...