webpack和sass-loader如何处理重叠的resolve.alias条目?

时间:2018-10-09 16:15:05

标签: webpack sass-loader

在这种情况下,我已经按照以下方式创建了一个Webpack配置(即使这可能是个坏主意):

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

似乎webpack总是选择使用something/aliased条目,而不选择something/aliased/more/specifically条目-无论它们的顺序如何。

我非常确定此错误是由于/src/more_specific/foo/bar存在,而src/something/.../foo/bar不存在引起的;删除webpack配置中的something/aliased条目会使这些错误消失,但是(显然)它没有执行我想要的别名。

Webpack如何处理像这样的重叠resolves.alias条目?有什么方法可以控制它选择使用哪个别名?

0 个答案:

没有答案