I'm submitting a bug report
- Library Version:
2.0.0-rc.2 but I have also tested against rc.5
Please tell us about your environment:
Current behavior:
PLATFORM.moduleName() behaves differently when using absolute, relative, and alias paths in different areas.
Expected/desired behavior:
If using a relative path, I expect the relative module to be loaded/used.
If using an absolute path, I expect the absolute module to be loaded/used.
If using an aliased path, I expect the aliased module to be loaded/used.
Example Skeleton:
I cloned the most recent webpack skeleton (Aug 31st) and modified it to provide examples here:
https://github.com/pat841/aurelia-webpack-test
Files of interest:
- main.js
- app.js
- webpack.config.js
main.js:
/**
* FEATURE EXAMPLES
*/
// Working as expected
// .feature(PLATFORM.moduleName('test_feature/index'));
// Not working?
// .feature(PLATFORM.moduleName('test_feature'));
// .feature(PLATFORM.moduleName('./test_feature/index'));
// .feature(PLATFORM.moduleName('./test_feature'));
/**
* PLUGIN EXAMPLES
*/
// Working as expected
// .plugin(PLATFORM.moduleName('test_plugin/index'));
// .plugin(PLATFORM.moduleName('test_plugin'));
// Not working?
// .plugin(PLATFORM.moduleName('./test_plugin/index'));
// .plugin(PLATFORM.moduleName('./test_plugin'));
/**
* ALIAS EXAMPLES
*/
// Working as expected
// .feature(PLATFORM.moduleName('test_alias/test_feature/index'));
// .plugin(PLATFORM.moduleName('test_alias/test_plugin/index'));
// .plugin(PLATFORM.moduleName('test_alias/test_plugin'));
// Not working?
// .feature(PLATFORM.moduleName('test_alias/test_feature'));
app.js:
config.map([
// Working as expected
{ route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('./sample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('./test/testsample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('./test_feature/testfeaturesample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('./test_plugin/testpluginsample'), title: 'Sample' }
// Not working?
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test_alias/sample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test_alias/test/testsample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test_alias/test_feature/testfeaturesample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test_alias/test_plugin/testpluginsample'), title: 'Sample' }
// Somehow working?
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('sample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test/testsample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test_feature/testfeaturesample'), title: 'Sample' }
// { route: ['', 'sample'], name: 'sample', moduleId: PLATFORM.moduleName('test_plugin/testpluginsample'), title: 'Sample' }
]);
webpack.config.js:
resolve: {
extensions: ['.js'],
modules: [srcDir, 'node_modules'],
alias: {
test_alias: srcDir
}
},
As you can see above, PLATFORM.moduleName() acts differently depending on WHERE its used (feature, plugin, route) as well as HOW the path is represented (relative, absolute, or aliased).
Simple Example: Aliased paths are working when using .plugin() or .feature() but not inside route moduleIds.
I'm submitting a bug report
2.0.0-rc.2 but I have also tested against rc.5
Please tell us about your environment:
Operating System:
OSX 10.12.6
Node Version:
7.4.0
NPM Version:
4.0.5
JSPM OR Webpack AND Version
Webpack 3.3.0
Browser:
Chrome 60
Language:
ESNext
Current behavior:
PLATFORM.moduleName() behaves differently when using absolute, relative, and alias paths in different areas.
Expected/desired behavior:
If using a relative path, I expect the relative module to be loaded/used.
If using an absolute path, I expect the absolute module to be loaded/used.
If using an aliased path, I expect the aliased module to be loaded/used.
Example Skeleton:
I cloned the most recent webpack skeleton (Aug 31st) and modified it to provide examples here:
https://github.com/pat841/aurelia-webpack-test
Files of interest:
main.js:
app.js:
webpack.config.js:
As you can see above, PLATFORM.moduleName() acts differently depending on WHERE its used (feature, plugin, route) as well as HOW the path is represented (relative, absolute, or aliased).
Simple Example: Aliased paths are working when using .plugin() or .feature() but not inside route moduleIds.