所以我有一个节点脚本运行webpacking很多文件夹,用于我们服务器上的不同安装,
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
minimize: true,
alias: {
'./assets/images': imagesPath,
'./bootstrap/config': resolve(`/External_Assets/LocalFiles/${item.id}/_config.scss`)
}
}
},
item.id只是包含scss变量配置文件的文件夹的路径。当我们在本地构建项目时,我们只有一个配置文件,如此引用
@import './bootstrap/config';
这就像别名中引用的路径一样,为什么这不起作用?它仍然可以从旧文件夹中获取变量。我还没有找到任何其他对该文件的引用。
答案 0 :(得分:1)
以gist作为工作示例。
要点:
_config.scss
文件时,我猜在sass-loader
之前运行css-loader
并且它不起作用,因为在那个时间点没有别名。bootstrap': resolve(`/External_Assets/LocalFiles/${item.id}`)
@import 'bootstrap/config';
应该是@import '~bootstrap/config
配置:
module.exports = {
// ...
resolve: {
alias: {
'assets/images': imagesPath,
'bootstrap': resolve(`/External_Assets/LocalFiles/${item.id}`)
}
},
module: {
rules: [
// ...
{
test: /\.scss$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {
minimize: true,
}
},
"sass-loader",
]
}
]
}
}
.scss
档案中的参考:
@import "~bootstrap/config";
css-loader
的别名与webpack' resolve.alias选项的工作方式相同。根据文档,别名仅适用于module paths。在您的情况下,指定了相对路径。
要使其正常工作,您可以在加载程序配置中使用以下选项:
alias: {
'assets/images': imagesPath,
'bootstrap/config': resolve(`/External_Assets/LocalFiles/${item.id}/_config.scss`)
}
然后将导入更改为
@import 'bootstrap/config';