es6-module-mapper
DISCLAIMER: This is currently a ducktaped together solution, use at your own risk.
Transforms ES6 module syntax into object references (uses a single global object map) via recast and integrates into sprockets for dependency management, concatenation, etc..
Usage
NOTE: This requires nodejs to be available via the node
executable at runtime. If you're deploying with a Heroku buildpack you will need the multi buildpack.
Include the gem in your Gemfile
gem 'es6-module-mapper', :git => 'https://github.com/jvatic/es6-module-mapper.git, :branch => 'master'
and require it:
require 'sprockets'
require 'es6-module-mapper'
You may wish to disable the Sprockets::DirectiveProcessor
if you're not using sprockets directives:
sprockets_environment.unregister_preprocessor(
'application/javascript', Sprockets::DirectiveProcessor)
You may now use the ES6 module syntax:
export function foo() {
return "foo";
}
var FOO = "foobar";
export { FOO as FOOBAR };
import { foo as echoFoo, FOOBAR } from "foo";
console.log(echoFoo());
console.log(FOOBAR);
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request