New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option to compile to ES6 Modules #30
Comments
Not that I'm volunteering, but there are a lot of export options for ES6
export default { someTemplate2(...) {
export function someTemplate1(...) {
On Sun, Feb 22, 2015 at 9:15 PM, hitsthings notifications@github.com
|
@hitsthings @concavelenz What's the use case? There are clear benefits to writing source code in ES6, as you mention, but it's less clear what the benefits of compiling to ES6 are, other than "all parts of our pipeline should use the latest syntax". It should eventually happen, but it might not be the highest priority. |
Native dependency management.
|
Native dep management is one - not having to use goog.require would be good. If the rest of my code is using the AMDish loader of BabelJS, and Soy is using goog.provides, I and every other consumer has to do work to make them play together. I have a project written in ES6 syntax with a build pipeline that expects ES6 as the source language. My build is either more complicated if I use Soy since I have to exclude it from parts of the build.
Fair enough. I wasn't advocating for making it the default, just making it a possibility. |
I'm interested in implementing this or #65, but want to know what direction the library maintainers want to take this? Some in-principle support for one approach or the other would be good. At the moment I'm leaning towards AMD. |
bump? |
FYI, I recently added a modularize option to atlassian-soy-loader. So if you compile with webpack, you can give that package a try. It assumes the Soy namespace in camelCase maps to a module name in kebab-case (but you can override this) It's a little specific to Atlassian though, as it expects SoyFunctions to be implemented with the Atlassian facade. The code can at least be inspiration though. |
Soy currently compiles to JS globals, which is still a good "least common denominator" choice. Forward-looking projects are already using ES6 modules and transpiling it back to whatever format they like (AMD, CommonJS, globals, whatever). An option to compile to ES6 modules is a good current choice, and in the future will be a better default choice.
The text was updated successfully, but these errors were encountered: