Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–223 runs
build_error
glibcnode 18–223 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
default
✓ import data from 'xml-loader!./data.xml'
✗ import { data } from 'xml-loader!./data.xml'
The loader returns the default export as a JSON object, not a named export.
require
✓ const data = require('xml-loader!./data.xml');
✗ const data = require('!xml-loader!./data.xml');
Do not use !xml-loader — the ! prefix disables loaders. Use xml-loader! instead.
webpack config
✓ module.exports = { module: { rules: [ { test: /\.xml$/, use: 'xml-loader' } ] } };
✗ module.exports = { module: { loaders: [ { test: /\.xml$/, loader: 'xml-loader' } ] } };
Since webpack 2+, use `rules` and `use` instead of deprecated `loaders` and `loader`.
query params
✓ require('xml-loader?explicitChildren=true!./data.xml')
✗ require('xml-loader!./data.xml?explicitChildren=true')
Query parameters should be placed before the file, not after.
Shows how to configure xml-loader in webpack and use it to import an XML file as JSON.
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.xml$/,
use: 'xml-loader'
}
]
}
};
// app.js
const data = require('./data.xml');
console.log(data); // parsed JSON object
// With options
const dataWithChildren = require('xml-loader?explicitChildren=true!./data.xml');
console.log(dataWithChildren);
Errors
Common errors & fixes
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
Webpack cannot parse .xml files without a loader configured.
fixAdd xml-loader to your webpack config module.rules.
Error: Cannot find module 'xml-loader'
xml-loader is not installed or not in node_modules.
fixRun npm install --save-dev xml-loader.
require('xml!./data.xml') returns undefined
You are using the deprecated ! prefix incorrectly or missing the loader name.
fixUse require('xml-loader!./data.xml') with the full loader name. Audit
Dependencies
node-xml2jsrequiredParses XML to JSON; loader delegates all parsing to this library.
webpackrequiredPeer dependency; loader is designed to be used with webpack.