kimroen / ember-cli-coffeescript

Adds precompilation of CoffeeScript files and all the basic generation types to the ember generate command.
MIT License
72 stars 49 forks source link

Conflicts with other addons with blueprints, like emblem #97

Open dchersey opened 8 years ago

dchersey commented 8 years ago

I've just installed the plugin to an existing ember-cli 1.13.13 app, and when I generate a pod or a component I am getting javascript blueprints for the pod itself, but coffeescript for the tests.

I tried adding

ENV.coffeeOptions = {
  blueprints: true
}

to try to force it but it is still not happening. Is there anything else I was supposed to do besides ember install ember-cli-emberscript ?

kimroen commented 8 years ago

That's curious, no - just installing it should be quite sufficient.

You can try running this command to see your blueprints - it sounds like something else is providing blueprints and they are getting higher priority:

ember generate --help

(I think that's the command, on my phone so can't check)

kimroen commented 8 years ago

By the way:

to try to force it but it is still not happening. Is there anything else I was supposed to do besides ember install ember-cli-emberscript?

Just to be sure, you mean ember install ember-cli-coffeescript here, right?

dchersey commented 8 years ago

Ok will do (on my phone too). Might be emblem-cli; If that's the case is there anything I can configure to resolve the dependency?

On Nov 24, 2015, at 4:25 PM, Kim Røen notifications@github.com wrote:

That's curious, no - just installing it should be quite sufficient.

You can try running this command to see your blueprints - it sounds like something else is providing blueprints and they are getting higher priority:

ember generate --help (I think that's the command, on my phone so can't check)

— Reply to this email directly or view it on GitHub.

kimroen commented 8 years ago

Not that I can think of right now. I think adding that to this would solve it: https://github.com/kimroen/ember-cli-coffeescript/blob/master/package.json#L38

dchersey commented 8 years ago

Yes!! Was playing with ember script first and still had it on the brain. I uninstalled that one as it seems out of date.

On Nov 24, 2015, at 4:27 PM, Kim Røen notifications@github.com wrote:

By the way:

to try to force it but it is still not happening. Is there anythingl else I was supposed to do besides ember install ember-cli-emberscript?

Just to be sure, you mean ember install ember-cli-coffeescript here, right?

— Reply to this email directly or view it on GitHub.

dchersey commented 8 years ago

Ok, will try that and let you know.

On Nov 24, 2015, at 4:31 PM, Kim Røen notifications@github.com wrote:

Not that I can think of right now. I think adding that to this would solve it: https://github.com/kimroen/ember-cli-coffeescript/blob/master/package.json#L38

— Reply to this email directly or view it on GitHub.

zkwentz commented 8 years ago

I tried this myself, doesn't appear to resolve the issue.

from ember g --help

   ember-cli-coffeescript:
      acceptance-test <name>
        Generates an acceptance test for a feature.
      adapter <name> <options...>
        Generates an ember-data adapter.
        --base-class
      adapter-test <name>
        Generates an ember-data adapter unit test.
      addon-import <name>
        Generates an import wrapper
      component-addon <name>
        Generates a component. Name must contain a hyphen.
      component-test <name> <options...>
        Generates a component integration or unit test.
        --test-type (Default: integration)
          aliases: -i (--test-type=integration), -u (--test-type=unit), -integration (--test-type=integration), -unit (--test-type=unit)
      controller <name>
        Generates a controller.
      controller-test <name>
        Generates a controller unit test.
      helper <name>
        Generates a helper function.
      helper-addon <name>
        Generates an import wrapper
      helper-test <name>
        Generates a helper unit test.
      initializer <name>
        Generates an initializer.
      initializer-addon <name>
        Generates an import wrapper
      initializer-test <name>
        Generates an initializer unit test.
      mixin <name>
        Generates a mixin.
      mixin-test <name>
        Generates a mixin unit test.
      model <name> <attr:type>
        Generates an ember-data model.
      model-test <name>
        Generates a model unit test.
      resource <name>
        Generates a model and route.
      route-addon <name>
        Generates import wrappers for a route and its template.
      route-test <name>
        Generates a route unit test.
      serializer <name>
        Generates an ember-data serializer.
      serializer-test <name>
        Generates a serializer unit test.
      service <name>
        Generates a service.
      service-test <name>
      ...

looks like the component generator isn't showing up?

kimroen commented 8 years ago

looks like the component generator isn't showing up?

No, but it should show up in the section of the addon that is also providing a component blueprint and overwriting the one from this addon.

davearel commented 8 years ago

I'm having an issue here as well. The route generator seems to be defaulting to the ember-cli blueprint. Despite the fact I have ember-cli-coffeescript installed. Other generators are working fine.

$ ember g route register
version: 1.13.14
installing route
  create app/routes/register.js
  create app/templates/register.emblem
ENOENT: no such file or directory, open '/Users/dave/code/ide/app/router.js'
Error: ENOENT: no such file or directory, open '/Users/dave/code/ide/app/router.js'
  at Error (native)
  at Object.fs.openSync (fs.js:549:18)
  at Object.fs.readFileSync (fs.js:397:15)
  at writeRoute (/Users/dave/code/ide/node_modules/ember-cli/blueprints/route/index.js:116:19)
  at Class.updateRouter (/Users/dave/code/ide/node_modules/ember-cli/blueprints/route/index.js:95:5)
  at Class.module.exports.afterInstall (/Users/dave/code/ide/node_modules/ember-cli/blueprints/route/index.js:78:18)
  at Class.module.exports.afterInstall (/Users/dave/code/ide/node_modules/ember-cli-emblem/blueprints/route/index.js:42:40)
  at Class.module.exports.afterInstall (/Users/dave/code/ide/node_modules/ember-cli-emblem/blueprints/route/index.js:42:40)
  at lib$rsvp$$internal$$tryCatch (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:493:16)
  at lib$rsvp$$internal$$invokeCallback (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:505:17)
  at lib$rsvp$$internal$$publish (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:476:11)
  at lib$rsvp$asap$$flush (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1198:9)
  at doNTCallback0 (node.js:417:9)
  at process._tickCallback (node.js:346:13)
zkwentz commented 8 years ago

It's a conflict between emblem and coffeescript. They both override the same generator, and it depends on which is defined lower in package.json, for which takes precedence.

On Mon, Jan 25, 2016 at 7:39 AM, Dave Arel notifications@github.com wrote:

I'm having an issue here as well. The route generator seems to be defaulting to the ember-cli blueprint. Despite the fact I have ember-cli-coffeescript installed. Other generators are working fine.

$ ember g route register version: 1.13.14 installing route create app/routes/register.js create app/templates/register.emblem ENOENT: no such file or directory, open '/Users/dave/code/ide/app/router.js' Error: ENOENT: no such file or directory, open '/Users/dave/code/ide/app/router.js' at Error (native) at Object.fs.openSync (fs.js:549:18) at Object.fs.readFileSync (fs.js:397:15) at writeRoute (/Users/dave/code/ide/node_modules/ember-cli/blueprints/route/index.js:116:19) at Class.updateRouter (/Users/dave/code/ide/node_modules/ember-cli/blueprints/route/index.js:95:5) at Class.module.exports.afterInstall (/Users/dave/code/ide/node_modules/ember-cli/blueprints/route/index.js:78:18) at Class.module.exports.afterInstall (/Users/dave/code/ide/node_modules/ember-cli-emblem/blueprints/route/index.js:42:40) at Class.module.exports.afterInstall (/Users/dave/code/ide/node_modules/ember-cli-emblem/blueprints/route/index.js:42:40) at lib$rsvp$$internal$$tryCatch (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:493:16) at lib$rsvp$$internal$$invokeCallback (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:505:17) at lib$rsvp$$internal$$publish (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:476:11) at lib$rsvp$asap$$flush (/Users/dave/code/ide/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1198:9) at doNTCallback0 (node.js:417:9) at process._tickCallback (node.js:346:13)

— Reply to this email directly or view it on GitHub https://github.com/kimroen/ember-cli-coffeescript/issues/97#issuecomment-174546788 .

kimroen commented 8 years ago

It's a conflict between emblem and coffeescript. They both override the same generator, and it depends on which is defined lower in package.json, for which takes precedence.

Thanks, that's very helpful information.

zkwentz commented 8 years ago

Sure thing, I haven't found a workaround myself, but then again I haven't looked hard either, at the moment I just run mv ....{hbs,emblem}, after each generate command.

davearel commented 8 years ago

This might be something that should be addressed in Ember-CLI, or even Emblem. I opened a ticket in Emblem to make them aware of the issue.

kimroen commented 8 years ago

As you suggest, this is more of a fundemental ember-CLI problem, also related to https://github.com/kimroen/ember-cli-coffeescript/issues/87

I'm excited to see if the proposed module changes will make this better - something needs to change with blueprints to accommodate those changes.

ralmidani commented 8 years ago

We were running into this issue, and found a simple workaround: delete the blueprints folder in ember-cli-emblem. This means you will have rename the .hbs files to .emblem and remove the double curly braces inside the files, but it is easier than having to refactor .js files to .coffee.

This is, of course, unsustainable in the long term, since updates may bring the blueprints folder back. But if you just need to move on with development, it is the best option among many unattractive ones.