ember-learn / ember-learn/cli-guides
Document altering entry point (allowing ember addon and "normal" package usage).
- 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
Assessment
This issue has not been assessed yet.