systemjs / plugin-babel

SystemJS Babel Plugin
MIT License
83 stars 33 forks source link

unable to use esm plugins unless explicitly setting babelOptions.plugins to [] #22

Open adamburgess opened 8 years ago

adamburgess commented 8 years ago

if I write a module in ESM and then add it as a babel plugin, when the module gets imported it tries to transpile it using itself as a plugin ... and then jspm crashes. should it always be necessary to override babelOptions.plugins on the module? or should plugin-babel be changed to either a) not use any babel plugins for transpiling babel plugins, or b) maybe just ignore itself

guybedford commented 8 years ago

I think it would be a little too convoluted to start adding custom exceptions here. It's a very predictable failure with a very predictable fix. If publishing a plugin, I can easily opt-out of plugins in that plugin package.json package configuration:

{
  "meta": {
    "my-plugin.js": {
      "babelOptions": {
        "plugins": []
      }
    }
  }
}

So I think rather to note the above as part of a plugin guide.

adamburgess commented 8 years ago

Although I agree that plugin-babel shouldn't be modified to handle this, it should at least throw an error -- currently all that is printed is:

$ jspm build app.js

Creating the single file bundle for app.js ...

$

which is of absolutely no help at all

guybedford commented 8 years ago

Sure we can definitely include a detection. This would simply be based on a check if System.normalize(pluginName).then(function(normalizedPluginName) { normalizedPluginName == load.name }).