I would like to debug production website, but I don't want to upload the map file on the server (for privacy reason, because it is public right ?).
Is it possible ?
Most JavaScript and CSS sources are usually minified and source maps serve as a memory map to the compressed files. It's generally a good practice to minify and combine your assets (Javascript & CSS) when deploying to production.
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 in the debugger.
A Sourcemap is a file that maps from the transformed source to the original source. It is a mapping between the generated/transpiled/minified JavaScript file and one or more original source files. The main purpose of Sourcemaps is to aid debugging.
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.
I don't believe any browsers currently allow loading source maps ondemand from local files, so you have to put the sourcemaps online somehow.
One solution could be to create a .htaccess file (or something similar, if you aren't using Apache) that restricts access to the sourcemap (and the original source files) to clients that aren't from your local network.
You should realize though, that if you want to prevent access to the sourcemaps for security reasons, then all you will achieve is a false sense of safety. Javascript is public, and even if it is minified and encrypted, it is fairly easy to unencrypt it. Do not put any sensitive data in your javascript. Not even if you minify and encrypt it.
Following might be useful for you
Multi-level Source Maps - The CSS Ninja
The link also explains using UglifyJS2 with which an input source map can be specified. However, I have not tested with a local input source
Also, you can try hosting the file on local and changing your hosts
file to point something like local.mydomain.com
to localhost
. And then specify local.mydomain.com/js/my-orig-js-file.js
as the Source Root
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