Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Webpack 4通过别名导入SCS_Javascript_Node.js_Webpack - Fatal编程技术网

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'

您好,感谢您的解释,但是,这并没有解决问题。