Я пытаюсь запустить приложение Vue. js в электронном формате, созданное с помощью vue -cli, vue -cli-plugin-электронный-строитель и Typescript.
Само приложение должно открывать внешние страницы, такие как google.com, и запускать пользовательский код JavaScript на этой странице. Но vue -cli компилирует Typescript "неправильно", поэтому предварительно загруженные / пользовательские сценарии не выполняются на страницах
Настройка:
Пользовательский файл JavaScript добавляется в vue .config. js, поэтому он компилируется. Кроме того, я настроил веб-пакет devServer для хранения файлов, чтобы электрон мог его загрузить.
// vue.config.js
module.exports = {
lintOnSave: false,
filenameHashing: false,
outputDir: `${__dirname}/dist_electron`,
pages: {
index: {
// entry for the page
entry: 'src/main.ts',
// the source template
template: 'public/index.html',
// output as dist/index.html
filename: 'index.html',
// when using title option,
// template title tag needs to be <title><%= htmlWebpackPlugin.options.title %></title>
title: 'Index Page',
// chunks to include on this page, by default includes
// extracted common chunks and vendor chunks.
chunks: ['chunk-vendors', 'chunk-common', 'index'],
},
},
configureWebpack: () => ({
entry: {
content: './src/content/main.ts',
},
devServer: {
writeToDisk: true,
},
})
};
Файл main.ts содержит только этот
// main.ts
console.log('I am the content script');
. Для предварительной загрузки файла я добавил его в BrowserWindow
// background.ts
win = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
nodeIntegration: false,
nodeIntegrationInSubFrames: false,
preload: path.resolve(__dirname, 'js', 'content.js'),
},
});
Проблема в том, что на таких страницах, как google.com, пользовательский скрипт не выполняется. Каким-то образом скрипт выполняется, когда я открываю BrowserWindow со страницей по умолчанию, созданной с помощью v ie -cli.
Это работает, когда я предварительно загружаю скрипт, который компилируется с помощью пользовательской конфигурации веб-пакета с машинописью.
Также, когда я просто копирую содержимое скомпилированного файла content.js
и запускаю его в консоли браузера, я не получаю вывод console.log
. Таким образом, vue -cli добавляет что-то в скрипт, что блокирует выполнение скрипта. Как я могу предотвратить это?