I created a simple webpack based project to learn snabbdom. Everything was OK except that sourcemap failed loading:
I don't know whose issue(webpack, chrome) it is. Is there anyone who know it?
Reproduction steps:
git clone https://github.com/tomwang1013/snabbdom-test.git
npm install
npm run dev
Browser support To enable source maps in Google Chrome, go to Developer Tools, click the little cog icon, and then make sure that “Enable Javascript source maps” is checked. That's it.
The SourceMap HTTP response header links generated code to a source map, enabling the browser to reconstruct the original source and present the reconstructed original in the debugger.
source-map-loader allows webpack to maintain source map data continuity across libraries so ease of debugging is preserved. The source-map-loader will extract from any JavaScript file, including those in the node_modules directory.
How to fix 'DevTools failed to load SourceMap' 'status code 404, net::ERR_UNKNOWN_URL_SCHEME' issue. If playback doesn't begin shortly, try restarting your device. Videos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer.
The source map you are trying to load is in node_modules and not part of webpack bundle. "If not extracted and processed into the source map of the webpack bundle, browsers may misinterpret source map data" ref.
Such scripts are difficult to debug than the original source code. A source map is a file that maps from the transformed source to the original source, enabling the browser to reconstruct the original source and present the reconstructed original to the debugger.
Turn off the extension by sliding the switch to the left. Reload the page that you were using the Development Tools on. Check if any of the "SourceMap" error messages disappeared. If any did, then that extension was causing those messages. Otherwise, that extension can be turned back on. After determining which extensions caused the issue either:
The source map you are trying to load is in node_modules
and not part of webpack bundle. "If not extracted and processed into the source map of the webpack bundle, browsers may misinterpret source map data" ref. When app is loaded that causes "ERR_UNKNOWN_URL_SCHEME" in chrome dev tools console.
To process node_module
source maps to webpack bundle, use source-map-loader
loader. That will fix console warnings.
Add dependency to package.json
:
"devDependencies": {
"source-map-loader": "^1.0.0",
...
}
Update webpack.config.js
:
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: ['source-map-loader'],
},
],
},
To generate source maps for snabbdom-test project in general you can use SourceMapDevToolPlugin
.
Update webpack.config.js
:
const { SourceMapDevToolPlugin } = require("webpack");
plugins: [
new SourceMapDevToolPlugin({
filename: "[file].map"
}),
...
],
Update webpack.config.js
module.exports = {
// ...
entry: {
"app": "src/app.js"
},
output: {
path: path.join(__dirname, 'dist'),
filename: "[name].js",
sourceMapFilename: "[name].js.map"
},
devtool: "source-map"
// ...
};
Detailed in https://blog.sentry.io/2018/10/18/4-reasons-why-your-source-maps-are-broken
devtool: "eval-cheap-source-map"
Add this to your webpack config and that's it.
Add devtool: 'eval-source-map'
to top most level of webpack.config
If you want to just turn these off, you can use a webpack devtool
option that ignores them. Detailed in my related question here
Add below line to your weback config
devtool: 'source-map ./src',
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With