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

Generator doesn't work, generates .js files #86

Closed hoIIer closed 7 years ago

hoIIer commented 9 years ago

Hello,

I am using "ember-cli-coffeescript": ">=0.10.0", in my ember-cli project (0.13.1)

Running generator command such as ember generate model foo will generate app/models/foo.js

Is there something I am missing? How can I generate files in coffeescript?

kimroen commented 9 years ago

Hi!

That should work just fine, so that's strange.

kimroen commented 8 years ago

I'll close this, but please reopen if you're still having issues with it.

andrewhavens commented 8 years ago

Please reopen this. I am also running into this issue.

I am working on migrating my ember-rails app to ember-cli-rails, so I just created my first Ember CLI app at the root of my Rails app directory:

$ ember new frontend --skip-git
$ ember install ember-cli-rails-addon

Next I installed the ember-cli-coffeescript add on and tried to generate some things:

$ ember install ember-cli-coffeescript
$ ember generate adapter application
installing adapter
  create app/adapters/application.js
installing adapter-test
  create tests/unit/adapters/application-test.js
$ ember generate model comment body:string
installing model
  create app/models/comment.js
installing model-test
  create tests/unit/models/comment-test.js

I even tried manually setting the configuration in config/environment.js:

module.exports = function(environment) {
  var ENV = {
    modulePrefix: 'frontend',
    environment: environment,
    baseURL: '/',
    locationType: 'auto',
    EmberENV: {
      FEATURES: {
        // Here you can enable experimental features on an ember canary build
        // e.g. 'with-controller': true
      }
    },
    coffeeOptions: {
      blueprints: true
    },

    APP: {
      // Here you can pass flags/options to your application instance
      // when it is created
    }
  };
// ...

The package is listed in package.json:

  "devDependencies": {
    "broccoli-asset-rev": "^2.4.2",
    "ember-ajax": "0.7.1",
    "ember-cli": "2.4.3",
    "ember-cli-app-version": "^1.0.0",
    "ember-cli-babel": "^5.1.6",
    "ember-cli-coffeescript": "1.13.2",
    "ember-cli-dependency-checker": "^1.2.0",
    "ember-cli-htmlbars": "^1.0.3",
    "ember-cli-htmlbars-inline-precompile": "^0.3.1",
    "ember-cli-inject-live-reload": "^1.4.0",
    "ember-cli-qunit": "^1.4.0",
    "ember-cli-rails-addon": "~> 0.7.0",
    "ember-cli-release": "0.2.8",
    "ember-cli-sri": "^2.1.0",
    "ember-cli-uglify": "^1.2.0",
    "ember-data": "^2.4.2",
    "ember-export-application-global": "^1.0.5",
    "ember-load-initializers": "^0.5.1",
    "ember-resolver": "^2.0.3",
    "loader.js": "^4.0.1"
// ...

What am I missing?

andrewhavens commented 8 years ago

Interesting...when I tried to generate a route, it looks like it started to create some .coffee files, but then it failed:

$ ember g route feed
installing route
  create app/routes/feed.coffee
  create app/templates/feed.hbs
ENOENT: no such file or directory, open '/Users/andrew/myapp/frontend/app/router.coffee'
Error: ENOENT: no such file or directory, open '/Users/andrew/myapp/frontend/app/router.coffee'
  at Error (native)
  at Object.fs.openSync (fs.js:584:18)
  at Object.fs.readFileSync (fs.js:431:33)
  at writeRoute (/Users/andrew/myapp/frontend/node_modules/ember-cli-coffeescript/blueprints/route/index.js:70:19)
  at Class.updateRouter (/Users/andrew/myapp/frontend/node_modules/ember-cli-coffeescript/blueprints/route/index.js:49:5)
  at Class.module.exports.afterInstall (/Users/andrew/myapp/frontend/node_modules/ember-cli-coffeescript/blueprints/route/index.js:32:18)
  at lib$rsvp$$internal$$tryCatch (/Users/andrew/myapp/frontend/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1036:16)
  at lib$rsvp$$internal$$invokeCallback (/Users/andrew/myapp/frontend/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1048:17)
  at lib$rsvp$$internal$$publish (/Users/andrew/myapp/frontend/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1019:11)
  at lib$rsvp$asap$$flush (/Users/andrew/myapp/frontend/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1198:9)
  at nextTickCallbackWith0Args (node.js:452:9)
  at process._tickCallback (node.js:381:13)
kimroen commented 8 years ago

So sorry for not getting back to you on this. Reopening now.

It sounds like some other addon is providing blueprints, and those are being prioritized higher than the ones in this project. I checked to see if ember-cli-rails or ember-cli-rails-addon have any blueprints, and it doesn't look like it so I doubt they are related.

From your examples though, it looks like the ones that don't work are ember-data related, so it could be that the blueprints that were moved to the ember-data addon fairly recently are overriding.

Interesting...when I tried to generate a route, it looks like it started to create some .coffee files, but then it failed

This error is not related to the problem - it's just that you don't have a router.coffee file, but one was expected. I have an issue to detect this and delegate to the built-in blueprints

Fixing the problem with blueprints being overridden is a matter of adding ember-data to the list of addons this addon should run before, as far as I can tell. Hopefully that will do the trick.

Sorry again that I completely missed your comments in this issue.