webpack(使用 sass-loader)- scss 文件 @import 无法识别解析别名
webpack (with sass-loader) - scss file @import does not recognize resolve alias
我的项目结构:
webpack.config.js
app--
--> src
---->> components
------>>> myComponent.js
------>>> myComponent.scss
--> styles
---->> variables.scss
在webpack.config module.exports:
...
resolve: {
alias: {
styles: path.join(__dirname, 'app/styles')
}
}
在我的文件中 - myComponent.scss:
@import "styles/variables";
构建时出现此错误 bundle.js:
Module build failed:
@import "styles/variables";
^
File to import not found or unreadable: styles/variables
如何在 sass 文件中 @import 别名?
因为你的 webpack.config.js
文件已经在 /app
文件夹中,别名不应该是:
resolve: {
alias: {
styles: path.join(__dirname, 'styles')
}
}
?
我能够在样式表上使用我在 webpack 中定义的别名,方法如下:
@import '~alias/variables';
正如 here
中的文档所建议的,只需在别名前加上 ~
就可以解决问题
另一个与此主题相关的修复,删除 .scss
@import '~scss/common.scss';
应该是
@import '~scss/common';
在我的例子中,依赖项是一个节点模块,因此我可以这样导入它:
@import '~node-module-name/variables';
并且当使用实际的节点模块目录名称时,我的编辑器 (PhpStorm) 不再显示未解决的路径错误(@tkiethanom 提到的问题)。如果我想使用 sass 样式导入(例如 my-package/colors
而不是 my-package/_colors.scss
),看起来我需要在 webpack 配置中指定别名,而且看起来什么是无关紧要的该别名的名称,只要我使用节点模块目录名称
我的项目结构:
webpack.config.js
app--
--> src
---->> components
------>>> myComponent.js
------>>> myComponent.scss
--> styles
---->> variables.scss
在webpack.config module.exports:
...
resolve: {
alias: {
styles: path.join(__dirname, 'app/styles')
}
}
在我的文件中 - myComponent.scss:
@import "styles/variables";
构建时出现此错误 bundle.js:
Module build failed:
@import "styles/variables";
^
File to import not found or unreadable: styles/variables
如何在 sass 文件中 @import 别名?
因为你的 webpack.config.js
文件已经在 /app
文件夹中,别名不应该是:
resolve: {
alias: {
styles: path.join(__dirname, 'styles')
}
}
?
我能够在样式表上使用我在 webpack 中定义的别名,方法如下:
@import '~alias/variables';
正如 here
中的文档所建议的,只需在别名前加上~
就可以解决问题
另一个与此主题相关的修复,删除 .scss
@import '~scss/common.scss';
应该是
@import '~scss/common';
在我的例子中,依赖项是一个节点模块,因此我可以这样导入它:
@import '~node-module-name/variables';
并且当使用实际的节点模块目录名称时,我的编辑器 (PhpStorm) 不再显示未解决的路径错误(@tkiethanom 提到的问题)。如果我想使用 sass 样式导入(例如 my-package/colors
而不是 my-package/_colors.scss
),看起来我需要在 webpack 配置中指定别名,而且看起来什么是无关紧要的该别名的名称,只要我使用节点模块目录名称