webpack (с загрузчиком sass)-scss - файл @import не распознает псевдоним разрешения
моя структура проекта:
webpack.config.js
app--
--> src
---->> components
------>>> myComponent.js
------>>> myComponent.scss
--> styles
---->> variables.scss
в webpack.модуль config.экспорт:
...
resolve: {
alias: {
styles: path.join(__dirname, 'app/styles')
}
}
в моем файле-myComponent.scss:
@import "styles/variables";
Я получаю эту ошибку при создании пакета.js:
Module build failed:
@import "styles/variables";
^
File to import not found or unreadable: styles/variables
как я могу @импортировать псевдонимы в файлы sass?
4 ответов
я смог использовать в таблице стилей псевдоним, который я определил в webpack, используя следующее:
@import '~alias/variables';
просто путем префикса псевдонима с ~
сделал трюк для меня, как указано в документации в здесь
еще одно исправление, связанное с этой темой, удалить .scss
@import '~scss/common.scss';
должно быть
@import '~scss/common';
поскольку webpack.config.js
файл уже находится в /app
папка, не должен ли псевдоним быть:
resolve: {
alias: {
styles: path.join(__dirname, 'styles')
}
}
?
в моем случае зависимость является узловым модулем, поэтому я могу импортировать ее следующим образом:
@import '~node-module-name/variables';
и при использовании фактического имени модуля узла dir мой редактор (PhpStorm) больше не показывает неразрешенную ошибку пути (проблема, о которой упоминал @tkiethanom). Похоже, мне нужно указать псевдоним в конфигурации webpack, если я хочу использовать импорт стиля sass (например,my-package/colors
вместо my-package/_colors.scss
), и кажется, не имеет значения, как называется этот псевдоним, пока я использовать имя каталога модуля узла