This project is based on the CodeOfficer/demo-engine-addon-dependency-conflicts project, which illustrates a number of issues that can occur between when apps, engines, and addons share different versions of dependencies.
Instead of just illustrating these problems, this project uses ember-cli-addon-guard to namespace different versions of dependencies so that they can co-exist in a single application.
Note that ember-cli-addon-guard's namespacing capability is experimental and not appropriate for all applications, as described in its README.
This project is a yarn workspace that can be installed simply by running yarn
from the project root.
cd packages/host-app
ember s
The ember-cli-addon-guard config file in host-app
is currently set to namespace the addons with dependency conflicts:
// packages/host-app/config/addon-guard.js
'use strict';
module.exports = {
namespaceAddons: [
'conflictable-addon'
]
};
If you'd like to see the project running without namespacing and with the dependency conflicts intact, change this to ignore addons:
// packages/host-app/config/addon-guard.js
'use strict';
module.exports = {
ignoreAddons: [
'conflictable-addon'
]
};
And finally, if you'd like to see the dependency errors that will be reported by ember-cli-addon-guard, simply remove the settings altogether:
// packages/host-app/config/addon-guard.js
'use strict';
module.exports = {
};