Webpack 4 sass-loader 导入文件,路径中没有 ~ 代字号
Webpack 4 sass-loader import file without ~ tilde in path
有没有办法使用第三方 SASS 导入 @import module-name/path
并且仍然有 sass-loader 将文件解析为 node_modules
?
如果我把 ~
放在 @import ~module-name/path
这样的地方,那么 sass-loader 会查看 node_modules
并找到文件,但我无法修改SASS 个文件以添加 ~
.
我尝试了一些方法,例如
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
includePaths: ["node_modules"]
}
}
]
}
]
但是模块没有解析。
有什么想法吗?我看到很多其他人也有同样的问题,但只看到添加 ~
作为真正的修复(我做不到)。
经过多次尝试和努力,我发现这是不可能的 AFAIK,但您可以编写一些东西来枚举您的 includePaths
并将该数组添加到您的配置中。
每个路径的最后部分应该是一个目录,@import
将在其中找到。
对于@import scoped-module-name/path
让你的 includePaths
有了这个:
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
includePaths: ["node_modules/@your_org"] // scoped-module-name exists here
}
}
]
}
]
有没有办法使用第三方 SASS 导入 @import module-name/path
并且仍然有 sass-loader 将文件解析为 node_modules
?
如果我把 ~
放在 @import ~module-name/path
这样的地方,那么 sass-loader 会查看 node_modules
并找到文件,但我无法修改SASS 个文件以添加 ~
.
我尝试了一些方法,例如
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
includePaths: ["node_modules"]
}
}
]
}
]
但是模块没有解析。
有什么想法吗?我看到很多其他人也有同样的问题,但只看到添加 ~
作为真正的修复(我做不到)。
经过多次尝试和努力,我发现这是不可能的 AFAIK,但您可以编写一些东西来枚举您的 includePaths
并将该数组添加到您的配置中。
每个路径的最后部分应该是一个目录,@import
将在其中找到。
对于@import scoped-module-name/path
让你的 includePaths
有了这个:
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
includePaths: ["node_modules/@your_org"] // scoped-module-name exists here
}
}
]
}
]