我正在使用Streamline图标。我这样导入一个svg图标:
import Icon from '@streamlinehq/streamlinehq/img/streamline-light/users/geomertic-close-up-multiple-users/multiple-neutral-2.svg'svg图标最终在以下位置编译:/packs/media/geomertic-close-up-multiple-users/multiple-neutral-2-6a0b9211.svg
我知道/packs/media是媒体元素(图片,字体,svg等)的默认格式,但是其他的呢?Webpacker是如何决定不包括以前的文件夹的,比如streamline-light/users
这是在哪里配置的,或者是在什么级别配置的?
我之所以问这个问题,是因为有不同的字体系列,每个字体中的图标都有相似的名称。因此,如果族名称未包含在已编译资源的路径中,则会导致问题。
发布于 2021-06-24 00:09:17
我最终为这些图标创建了一个自定义加载器。我认为我看到的问题在rails配置webpack的方式上是意料之中的。
如果我错了,请纠正我,或者回复一个更好的答案,我会接受的:)
const { environment } = require('@rails/webpacker');
const { join } = require('path');
const streamlinehqIconRegexp = /.*@streamlinehq.*\.(svg)$/i;
environment.loaders.get('file').exclude = streamlinehqIconRegexp;
module.exports = {
test: streamlinehqIconRegexp,
use: [
{
loader: "file-loader",
options: {
name: (fullPath) => {
let iconFamily = fullPath.match(/img\/streamline-([^\/]+)/)[1]
if (iconFamily == "light")
iconFamily = "";
return join(
"media/icons",
iconFamily,
"[name]-[hash:8].[ext]"
);
}
},
}
]
}https://stackoverflow.com/questions/68090073
复制相似问题