@embroider/addon-shim
Makes a v2 addon work like a v1 addon so it can be used in a classic (non-Embroider) app.
This allows addons to update to v2 without waiting for all their users to upgrade to Embroider.
Compatibility
- Ember.js v3.13 or above
- Ember CLI v2.13 or above
- Node.js v10 or above
Installation
ember install @embroider/addon-shim
Usage
To use it:
-
Be prepared to do a semver major release of your addon, because the shim demands that the app has ember-auto-import >= 2.
-
Create an addon-main.js
file that requires and invokes the shim:
const { addonV1Shim } = require('@embroider/addon-shim');
module.exports = addonV1Shim(__dirname);
-
Update your package.json
to point at addon-main.js:
{
"ember-addon": {
"version": 2,
"type": "addon",
"main": "addon-main.js"
}
}
Shim Options
disabled: this optional argument lets you control whether your shimmed addon will emit 'app-js'
and 'public-assets'
into non-embroider builds. Example:
module.exports = addonV1Shim(__dirname, {
disabled(options) {
let welcomeConfig = options['ember-welcome-page'] || {};
return process.env.EMBER_ENV === 'production' && !welcomeConfig.enabled;
},
});
This option only works in non-embroider builds. Under embroider, apps just won't import the parts of your addon they don't want.
Contributing
See the top-level CONTRIBUTING.md in this monorepo.
License
This project is licensed under the MIT License.