Webpack 使用CDN URL预先设置SCSS映像路径

Webpack 使用CDN URL预先设置SCSS映像路径,webpack,sass,sass-loader,Webpack,Sass,Sass Loader,我对Webpack和SCS非常陌生,所以我甚至不知道如何问好这个问题。本质上,我有一堆配置图像引用的SCSS文件。例如: .someClass { background-image: url(img/some-image.png); } 只要我引用与CSS在同一服务器上提供的图像,它就可以正常工作。但是,我想从一个单独的CDN提供图像。我遇到的一个建议是使用sass loader设置一个“cdnPath”变量,并调整引用,如下所示: /* webpack.config.js /* {

我对Webpack和SCS非常陌生,所以我甚至不知道如何问好这个问题。本质上,我有一堆配置图像引用的SCSS文件。例如:

.someClass {
  background-image: url(img/some-image.png);
}
只要我引用与CSS在同一服务器上提供的图像,它就可以正常工作。但是,我想从一个单独的CDN提供图像。我遇到的一个建议是使用sass loader设置一个“cdnPath”变量,并调整引用,如下所示:

/* webpack.config.js /*
{
  loader: "sass-loader",
  options: {
    data: "$cdnPath: https://cdn-path.com;"
  }
}

/* some.scss */
.someClass {
  background-image: url($cdnPath + "img/some-image.png");
}

然而,在我看来,这似乎是一个容易出错的解决方案。我想知道是否有一种方法可以自动预先设置这些url引用的CDN路径。有没有我不知道的更好的方法?

一种方法是使用SASS功能:

$cdn-url: "https://cdn-path.com";

@function get-asset($local-path) {
  @return url($cdn-url + $local-path);
}

.some-class {
  background-image: get-asset("/static/images/image.png");
}

// Output:
//
// .some-class {
//   background-image: url(https://cdn-path.com/static/images/image.png);
// }