webpack5配置xml、csv、toml、yaml、json5加载
xml:
<note> <to>Toveto> <from> <title>Janititle> <age>18age> from> <heading>Reminderheading> <body>Don't forget me this weekend!body> note>
csv
sj_mino1001.jpg,715282,4FB55FE8, sj_mino1002.jpg,471289,93203C5C, sj_mino1003.jpg,451929,C4E80467,
toml
title = "taml Example" [owner] name = "tom" origin = "github"
yaml
title: yaml Example
owner:
name: tom
origin: github
json5
{ // comment title: 'JSON5 Example', owner: { name: 'tom', origin: 'github', bio: 'github & CEO\n\ likes beer.', dob: '2022' } }
在webpack5中配置对应的loader加载
module: { // 模块加载配置 rules: [ { test: /\.png$/, type: 'asset/resource', // 生成资源文件 generator: { filename: 'images/[contenthash][ext]', // generator的优先级高于output里的优先级 } }, { test: /\.svg$/, type: 'asset/inline', // 生成一个datauri 比如把svg生成base64,从而就不生成资源文件了 }, { test: /\.txt$/, type: 'asset/source' // 导出资源的源代码 }, { test: /\.jpg$/, type: 'asset', // asset通用资源类型会在 asset/inline 和 asset/source 自动选择 parser: { dataUrlCondition: { maxSize: 8 * 1024, // 当资源文件大于8kb时生成资源文件(asset/source),否则生成base64(inline) } } }, { test: /\.css|less$/, // use: 'css-loader', // 使css可以用模块导出 // use: ['style-loader', 'css-loader', 'less-loader'], // 把css-loader识别的css模块通过style-loader放到页面上,先执行css-loader再执行style-loader use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'], }, { test: /\.(woff|woff2|eot|ttf|otf)$/, // 加载font字体资源 type: 'asset/resource' // 这个类型可以帮我们载入任何类型的资源 }, { test: /\.(csv|tsv)$/, // 加载csv文件资源 use: 'csv-loader' }, { test: /\.xml$/, // 加载xml文件资源 use: 'xml-loader' }, { test: /\.toml$/, // 加载toml文件资源 type: 'json', parser: { parse: toml.parse } }, { test: /\.yaml$/, // 加载yaml文件资源 type: 'json', parser: { parse: yaml.parse } }, { test: /\.json5$/, // 加载json5文件资源 type: 'json', parser: { parse: json5.parse } }, ] },
对应loader
csv-loader 、 json5、 toml、 xml-loader、 yaml