How does Ember-cli know where to import "ember-data" from

Ember-cli uses ES6 syntax to import modules.

This is how you import Ember-Data:

import DS from 'ember-data'

      

How does Ember-cli know where to import Ember-Data? This case does not seem to follow the naming conventions described in Using Modules and Resolver docs . (Or maybe I am missing something.)

+3


source to share


2 answers


The ember-cli-ember-data node module adds ember-data to the generated Ember CLI output (via vendor.js). If you look at these index.js modules, in the function EmberCLIED.prototype.included

you will see the following links to the ember data in the vendor directory:

    EmberCLIED.prototype.included = function included(app) {
      this.app = app;
      var options = {
        exports: {
          'ember-data': [
            'default'
          ]
        }
      };

      if (this.app.env === 'production') {
        this.app.import('vendor/ember-data/ember-data.prod.js', options); // <--
      } else {
        this.app.import('vendor/ember-data/ember-data.js', options);      // <--
      }
    };

      



This is how the Ember CLI knows where to find the ember data.

+2


source


The 'ember-data' bit refers to the base Ember-CLI installation vendor/ember-data/ember-data.js

.

It is exactly the same as:, import Ember from 'ember';

which applies to vendor/ember/ember.js

.



What you call it in import doesn't matter. This is just a link to what you are importing.

0


source







All Articles