kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
88 wiersze
2.1 KiB
TypeScript
88 wiersze
2.1 KiB
TypeScript
![]() |
// Asset modules
|
||
|
// https://webpack.js.org/guides/asset-modules/
|
||
|
|
||
![]() |
import { resolve } from 'path';
|
||
|
|
||
|
import type { RuleSetRule } from 'webpack';
|
||
![]() |
|
||
|
// These are processed in reverse-order
|
||
|
// We use the name 'packs' instead of 'assets' for legacy reasons
|
||
![]() |
const rules: RuleSetRule[] = [{
|
||
![]() |
test: /\.(png|svg)/,
|
||
|
type: 'asset/resource',
|
||
|
include: [
|
||
|
resolve('app', 'images'),
|
||
|
resolve('node_modules', 'emoji-datasource'),
|
||
|
],
|
||
|
generator: {
|
||
|
filename: 'packs/images/[name]-[contenthash:8][ext]',
|
||
|
},
|
||
|
}, {
|
||
|
test: /\.(ttf|eot|svg|woff|woff2)/,
|
||
|
type: 'asset/resource',
|
||
|
include: [
|
||
|
resolve('app', 'fonts'),
|
||
|
resolve('node_modules', 'fork-awesome'),
|
||
![]() |
resolve('node_modules', 'line-awesome'),
|
||
![]() |
resolve('node_modules', '@fontsource'),
|
||
|
],
|
||
|
generator: {
|
||
|
filename: 'packs/fonts/[name]-[contenthash:8][ext]',
|
||
|
},
|
||
|
}, {
|
||
|
test: /\.(ogg|oga|mp3)/,
|
||
|
type: 'asset/resource',
|
||
|
include: resolve('app', 'sounds'),
|
||
|
generator: {
|
||
|
filename: 'packs/sounds/[name]-[contenthash:8][ext]',
|
||
|
},
|
||
|
}, {
|
||
|
test: /\.svg$/,
|
||
|
type: 'asset/resource',
|
||
|
include: resolve('node_modules', 'twemoji'),
|
||
|
generator: {
|
||
|
filename: 'packs/emoji/[name]-[contenthash:8][ext]',
|
||
|
},
|
||
![]() |
}, {
|
||
|
test: /\.svg$/,
|
||
![]() |
type: 'asset/resource',
|
||
![]() |
include: resolve('app', 'icons'),
|
||
![]() |
generator: {
|
||
![]() |
filename: 'packs/icons/[name]-[contenthash:8][ext]',
|
||
![]() |
},
|
||
![]() |
}, {
|
||
|
test: /\.svg$/,
|
||
![]() |
type: 'asset/resource',
|
||
![]() |
include: resolve('node_modules', 'bootstrap-icons'),
|
||
|
generator: {
|
||
![]() |
filename: 'packs/icons/[name]-[contenthash:8][ext]',
|
||
![]() |
},
|
||
|
}, {
|
||
|
|
||
|
test: /\.svg$/,
|
||
![]() |
type: 'asset/resource',
|
||
![]() |
include: resolve('node_modules', 'feather-icons'),
|
||
|
generator: {
|
||
![]() |
filename: 'packs/icons/[name]-[contenthash:8][ext]',
|
||
![]() |
},
|
||
![]() |
}, {
|
||
|
test: /\.svg$/,
|
||
![]() |
type: 'asset/resource',
|
||
![]() |
include: [
|
||
|
resolve('node_modules', '@tabler'),
|
||
|
resolve('custom', 'modules', '@tabler'),
|
||
|
],
|
||
![]() |
generator: {
|
||
![]() |
filename: 'packs/icons/[name]-[contenthash:8][ext]',
|
||
![]() |
},
|
||
![]() |
}, {
|
||
|
test: /\.svg$/,
|
||
|
type: 'asset/resource',
|
||
|
include: resolve('node_modules', 'cryptocurrency-icons'),
|
||
|
generator: {
|
||
|
filename: 'packs/images/crypto/[name]-[contenthash:8][ext]',
|
||
|
},
|
||
|
}];
|
||
![]() |
|
||
|
export default rules;
|