Javascript Webpack 4通过别名导入SCS
因此,我有一个节点脚本,为服务器上的不同安装运行多个文件夹的网页打包Javascript Webpack 4通过别名导入SCS,javascript,node.js,webpack,Javascript,Node.js,Webpack,因此,我有一个节点脚本,为服务器上的不同安装运行多个文件夹的网页打包 MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { minimize: true, alias: { './assets/images': image
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'代码>
这就像别名中引用的路径,为什么不起作用?它仍然从旧文件夹中获取变量。我没有找到任何其他对该文件的引用 编辑1
作为一个工作示例,制作了一个
要点:
- 移动别名以解决此问题。当您使用
\u config.scss
文件时,我猜在css加载程序
之前运行了sass加载程序
,但它无法工作,因为此时没有别名
- 我无法使alias对特定的.scss文件起作用,尽管您可以只指向文件夹-
bootstrap:resolve(`/External\u Assets/LocalFiles/${item.id}`)
- .scss文件具有加载非相对路径的特殊语法(应以~)开头。即,代替
@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加载器的别名与webpack的选项工作相同。根据文档,别名仅适用于。在您的情况下,请指定相对路径
要使其工作,可以在加载程序配置中使用以下选项:
alias: {
'assets/images': imagesPath,
'bootstrap/config': resolve(`/External_Assets/LocalFiles/${item.id}/_config.scss`)
}
然后将导入更改为
@import'bootstrap/config'代码>您好,感谢您的解释,但是,这并没有解决问题。