Как запустить приложение vue.js внутри скрипта в tampermonkey?
Не получается запустить vue.js приложение, скомпилированное через webpack (стандартными средствами vue) в скрипте tampermonkey.
В самом user script-е подгружается только loder.js, который уже загружает chunk-vendors.js и app.js через fetch и выполняет с помощью (new Function(data))();
Скрипты скачиваются, тексты скриптов в консоли вижу, т.е., они успешно загружаются и выполняются.
Если в app.js сделать console.log, он выполняется.
Но в итоге получаю ошибку — Vue is not defined.
window.Vue и window.vue тоже undefined.
Чего делать? Куда смотреть?
З.Ы.: Через внедрение скрипта посредством создания элемента script не получится, так как на целевом сайте сторонние скрипты заблокированы.
Контекст расширения и контекст окна изолированы друг от друга. Я не вижу кода, но вполне может так быть, что у вас часть работает в одном контексте, а часть в другом. А консоль браузера выводит сообщения и от туда и от туда.
profesor08, надо понимать жизненный цикл расширений, потому как обычные страничные скрипты работать могут весьма странным способом. Хром неиспользуемые расширения тупо выгружает из памяти, когда как и за что - не уточняет. Тот же прикол со всякими setInterval, SetTimeout им на замену есть шедулер апи, иначе можно наловить unknown behavior.
acwartz, жизненный цикл расширений прост и понимается при первой попытке разработать что-то. Если твой код встраивается в страницу, то он будет работать как обычный код на странице. Если твой код запускается в окошке расширения, то он будет работать до тех пор, пока окошко не закроется. Фоновый скрипт будет работать до тех пор, пока он что-то делает, либо что-то слушает.
Конкретно у автора выкидывалось все, что он явно не использовал в коде. Видимо полет сознания и безнаказанности js сделали все дело x_x