Ответ 1
Да, это возможно. Чтобы избежать двусмысленности и для более простой реализации, мы будем использовать префикс хеш-символ как маркер вашего соглашения:
require("#./components/SettingsPanel");
Затем добавьте это в свой файл конфигурации (конечно, вы можете реорганизовать его позже):
var webpack = require('webpack');
var path = require('path');
var MyConventionResolver = {
apply: function(resolver) {
resolver.plugin('module', function(request, callback) {
if (request.request[0] === '#') {
var req = request.request.substr(1);
var obj = {
path: request.path,
request: req + '/' + path.basename(req) + '.js',
query: request.query,
directory: request.directory
};
this.doResolve(['file'], obj, callback);
}
else {
callback();
}
});
}
};
module.exports = {
resolve: {
plugins: [
MyConventionResolver
]
}
// ...
};