# source_map-jsmin
**Repository Path**: mirrors_ConradIrwin/source_map-jsmin
## Basic Information
- **Project Name**: source_map-jsmin
- **Description**: A Source Map enabled pure-ruby version of Doug Crockford's awesome jsmin
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-08
- **Last Updated**: 2026-05-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
This is a version of Douglas Crockford's eponymous jsmin that also generates a source map so that you can debug your javascript as though it had never been minified at all!
Huge thanks should be given to Ryan Grove for porting Douglas Crockford's C code to Ruby so that I could ruin it :).
Installation
============
gem install source_map-jsmin
Creating a source map
=====================
```ruby
input = File.read("public/javascripts/myscript.js")
map = SourceMap::JSMin.minify(input, :input_filename => "myscript.js",
:output_filename => "myscript.min.js",
:source_root => "http://localhost:3000/javascripts/"
)
# Output the minified code to a file for serving
File.open("public/javascripts/myscript.min.js", "w"){ |f| f << map.generated_output }
# Output the map to a file in the same manner
File.open("public/javascripts/myscript.map.json", "w"){ |f| f << map.to_s }
```
Using a source map
==================
In summary, you need to serve `public/javascripts/myscript.min.js` with an extra HTTP
header: `X-SourceMap: /javascripts/myscript.map.json`, and enable source maps in the
developer console of your Google Chrome 19+ web browser.
For more details try the `source_map` gem's README.
Future work
===========
* I'd like to support passing an `:input_sourcemap` argument to minify so that if the
input file was generated by a process that created a source map, the minification step
will create a source map that refers to the original sources instead of to the
intermediary input file.
License
=======
This is all licensed under the MIT license, though it inherits Douglas Crockfords
additional: "Must be used for good not evil" clause. If you have really pernickety lawyers
this may cause you problems; but if you're actually using it for evil, you probably don't
care too much.
Meta-fu
=======
Contributions, bug reports and feature requests are welcome, though if they are to do with
the core JSMIN please send them upstream and
then notify me.