У меня есть ситуация, когда я создал конфигурацию веб-пакета по этим направлениям (хотя, вероятно, это плохая идея):
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
записи, подобные этой?Есть ли способ контролировать, какой псевдоним он выбирает?