ember-learn / ember-learn/cli-guides

Document altering entry point (allowing ember addon and "normal" package usage).

Open
#116 2 comments 0 reactions 0 assignees View on GitHub
help wanted
Dominant language
JavaScript
Stars
26
Forks
77
Avg merge
9m
Merged PRs (30d)
2

Description

In ember-cli (for a very very long time) it has been possible to have ember-cli use a different main entry point for the addon than what a normal `require('my-package-name')` would return.

The way to do this is to add an `"ember-addon": { "main": "some-other-file.js" }` to your `package.json`. Normal `require` invocation will look at the `main` entry point, and `ember-cli` will look at `some-other-file.js`.

One nice benefit of this is that if you make `main` be `addon/index.js` and `ember-addon.main` be `index.js`, "normal" node_module resolution rules apply for things in `addon/index.js`. This means that things like `eslint-plugin-import` and `TypeScript` can actual see and validate an import from the addon name (though not with nested paths).

For example, typescript (and eslint-plugin-import) would see that this is valid:

```js
import Component from 'sparkles-component';

export default class extends Component {}
```

See https://github.com/rwjblue/sparkles-component/pull/23 as an example.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.