Приложение Vuejs не отображается в расширении Chrome

Вы можете использовать rc.local в экземпляре ubuntu ec2 для запуска приложения (.jar) при запуске. Просто вы должны включить исполняемый код исполняемого кода .jar в rc.local перед строкой exit 0, как показано ниже. Чтобы изменить rc.local, вы должны иметь root-доступ. Поэтому обращайтесь к нему следующим образом: sudo vi /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Example Code Execution

java -jar sampleExecutionPackage.jar 

exit 0

После этого, если вам нужно проверить состояние запущенного приложения, вы можете проверить, что с помощью

sudo systemctl status rc-local.service

вы можете используйте start/stop/restart вместо status для соответствующего его использования.

0
задан Michael Gradek 19 January 2019 в 21:26
поделиться

2 ответа

Я нашел простое и быстрое решение.

Вся проблема, как отмечали многие, связана с шаблонами рендеринга vue во время выполнения. Для этого он использует функцию eval(), которая по умолчанию не разрешена chrome из-за расширений в целях безопасности.

Вы можете обойти это, добавив следующую строку в manifest.json:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

Это явно не рекомендуется, так как ваше расширение будет подвержено уязвимости межсайтового скриптинга .

Вместо этого вы можете положиться на визуализацию шаблонов во время компиляции. Таким образом, вам больше не нужно запускать eval() для ваших шаблонов.

Самый простой способ визуализации шаблонов во время компиляции - установить Vue build в runtime при создании проекта с помощью vue init webpack.

Это вынуждает Vue использовать предварительно скомпилированные шаблоны согласно этой статье: https://vuejsdevelopers.com/2017/05/08/vue-js-chrome-extension/

[1117 ] ... это именно то, что нам нужно, чтобы не использовать функцию eval().

0
ответ дан Michael Gradek 19 January 2019 в 21:26
поделиться

Для создания Chrome-расширения с помощью Vuejs вы можете использовать этот шаблон. Убедитесь, что вы установили vue-cli, если он не установлен, вы можете установить его с помощью `npm install -g @ vue / cli.

После установки vue-cli запустите этот cmd: vue init kocal/vue-web-extension my-extension. Он загрузит и установит шаблон шаблона vuejs для расширения chrome в ваш текущий каталог. Затем вы можете перейти во вновь созданный каталог и установить зависимости с помощью команды npm install.

Теперь вы полностью настроили приложение vuejs для вашего chrome-расширения, но оно откроется как всплывающее окно, чтобы сделать его видимым на новой вкладке, и потребует некоторой модификации, как я дал ниже.

  1. Сначала перейдите к файлу src/manifest.json и удалите "default_popup": "popup/popup.html" из "browser_action"
  2. Затем перейдите к файлу src/background.js и удалите весь указанный код и замените его на код приведен ниже.

    chrome.browserAction.onClicked.addListener(function (tab) {
        chrome.tabs.create(
            {
                url: chrome.extension.getURL('./popup/popup.html'),
            },
            function (tab) { }
        );
    });
    
  3. Теперь запустите run npm run build, и он сгенерирует папку dist, которую вы можете использовать в качестве папки расширения. Это вы можете открыть в Chrome, используя опцию Load unpacked в меню расширений Chrome.

И все готово. Вы можете увидеть приложение vuejs, работающее в окне новой вкладки, нажав на значок расширения.

1120 Дайте мне знать, сработало это или нет, если не сработало, тогда, пожалуйста, позвольте мне знать, с какой проблемой вы столкнулись.

0
ответ дан Pavan Vora 19 January 2019 в 21:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: