为 require() 添加新扩展

你可以通过扩展 require.extensionsrequire() 添加新扩展。

对于 XML 示例:

// Add .xml for require()
require.extensions['.xml'] = (module, filename) => {
    const fs = require('fs')
    const xml2js = require('xml2js')

    module.exports = (callback) => {
        // Read required file.
        fs.readFile(filename, 'utf8', (err, data) => {
            if (err) {
                callback(err)
                return
            }
            // Parse it.
            xml2js.parseString(data, (err, result) => {
                callback(null, result)
            })
        })
    }
}

如果 hello.xml 的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<foo>
    <bar>baz</bar>
    <qux />
</foo>

你可以通过 require() 阅读和解析它:

require('./hello')((err, xml) {
    if (err)
        throw err;
    console.log(err);
})

它打印 { foo: { bar: [ 'baz' ], qux: [ '' ] } }