ember-cli-addon-aware-resolver
Resolve paths within dependent packages, with additional awareness of:
- ember apps
- ember in-repo addons
- the pre-embroider (v1) ember addon format
Installation
yard add ember-cli-addon-aware-resolver
Usage
const resolveCliAware = require('ember-cli-addon-aware-resolver');
resolveCliAware('../foo', {
basedir: '/some/absolute/path'
})
resolveCliAware('my-ember-app-name/foo', {
basedir: '/some/absolute/path'
})
{
"ember-addon": {
paths: ["./lib/my-in-repo-addon"]
}
}
resolveCliAware('my-in-repo-addon/some/path/in/addon', {
basedir: '/some/absolute/path'
})
resolveCliAware('my-dependency/some/path', {
basedir: '/path/to/project/some/nested/path',
pkg: myAlreadyReadPackageJson,
pkgRoot: '/path/to/project'
})
try {
resolveCliAware('non-existant-package', {
basedir: '/some/absolute/path'
});
} catch (e) {
e.code
}
Limitations
-
Non-ember npm dependencies are not supported. It is assumed all resolutions one of:
- classic ember apps
- classic ember addons
- v2 ember addons
-
No support for app namespace merging: so files in an addon's app
directory will not be resolved. Similarly, ${my-addon}/test-support
will not be resolved as being merged to ${my-app}/tests
.
-
No support for path conflict resolution. This is unlikely to affect anybody, but if you have an Ember app with my-app/app/tests/foo
, my-app/tests/foo
will not resolve to this file, but instead only look for my-app/tests/foo
-
No support for customized this.treePaths
in addons.
-
"main" imports are not supported (i.e. imports without paths)