I try to run “node index.js” and get the following error message:
ValidationError: Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.
- configuration.module.rules[0] should be one of these:
[“…” | object { compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, sideEffects?, test?, type?, use? }, …]
-> A rule.
Details:
- configuration.module.rules[0].loader should be a non-empty string. -> A loader request.
Here is my webpack.config.js
module.exports = { entry: [ './main.js', ], output: { path: '/', filename: 'main-bundle.js', }, module: { rules: [ { test: /.jsx?$/, exclude: /node_modules/, loader: ['babel-loader'], }, { test: /.css$/, loader: 'style-loader!css-loader' }, { test: /.eot(?v=d+.d+.d+)?$/, loader: 'file-loader' }, { test: /.(woff|woff2)$/, loader: 'url-loader', options: { prefix: 'font/', limit: '5000', }, }, { test: /.ttf(?v=d+.d+.d+)?$/, loader: 'url-loader', options: { limit: 10000, mimetype: 'application/octet-stream', }, }, { test: /.svg(?v=d+.d+.d+)?$/, loader: 'url-loader', options: { limit: '10000', mimetype: 'image/svg+xml', }, }, ], }, };
Please help me find the error, I’ve read the documentation and just can’t find it!
Advertisement
Answer
You need to pass the html in a string to res.end
. Since you have multiple lines of html, you can use template-literals (note the backticks `..`) to make it easier.
Using template-literals you can define embedded expressions using ${expression}
that will be concatenated into the resulting string. In your example this is used to set e.g. the hostname: ${os.hostname}
:
res.end(`<html><head><title>Operating System Info</title></head><body><h1>Operating System Info</h1> <table> <tr><th>TMP Dir</th><td>${os.tmpdir()}</td></tr> <tr><th>Host Name</th><td>${os.hostname()}</td></tr> <tr><th>OS Type</th><td>${os.type()}</td></tr> ${os.platform()} ${os.arch()} $os.release()}</td></tr> <tr><th>Uptime</th><td>${os.uptime()} ${util.inspect(os.loadavg())}</td></tr> <tr><th>Memory</th><td>total: ${os.totalmem()} free: ${freemem()}</td></tr> <tr><th>CPU's</th><td><pre>${util.inspect(os.cpus())}</pre></td></tr> <tr><th>Network</th><td><pre>${util.inspect(os.networkInterfaces())}</pre></td>,/tr> </table> </body></html>`);