Попробуйте поместить document.getElementById
в setTimeout()
Например.
setTimeout(function(){
console.log(document.getElementById('whatever'));
}, 100);
Если это сработает, тогда это просто проблема синхронизации.
Я бы посоветовал вам связывать, а не пытаться импортировать вещи во время выполнения. Webpack - это пакет. Ситуация становится беспорядочной, когда вы пытаетесь обойти то, для чего она предназначена.
И да, вы можете импортировать файлы вне корневого каталога в ваш пакет. Вот пример из одного из моих приложений, который использует внешний код.
{
test: /\.js?$/,
include: [
path.resolve(__dirname),
path.resolve(__dirname, "../Public/js/src/common")
],
exclude: /node_modules/,
loader: "babel-loader"
}
Я также создаю псевдоним.
common: path.resolve(__dirname, "../Public/js/src/common"),
Webpack связывает этот файл с вашим приложением при его импорте.