wickinats
@wickinats

Можно ли использовать Nodejs во Vue при написании программы на Electron?

Здравствуйте, возможно ли прямое использование Nodejs кода в десктопном приложении на Electron и Vue? Если да, то каким образом? Уже опробовал Electron-Vue, но могу сказать тот факт, что этот пакет настолько устарел, что попросту не собирается, как нужно.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 2
bingo347
@bingo347
Бородатый программер
Можно. В том числе и без дополнительных пакетов.
Нодовский require в render процессе есть так же в глобальном объекте (в window) и работает относительно html файла, с которым этот render процесс был запущен.
Для вызова builtin модулей (всяких fs или самого electron) вообще пофиг, относительно чего работает require.
В main процессе при создании render процесса (а так же для всех webview) нужно разрешить nodeintegration
Ответ написан
wickinats
@wickinats Автор вопроса
// test.vue

const crypto = require('crypto');

  export default {
    methods: {
      test() {
        const secret = 'abcdefg';
        const hash = crypto.createHmac('sha256', secret)
                           .update('I love cupcakes')
                           .digest('hex');
        console.log(hash);
      }
    }
  }


// electron.js

const { app, BrowserWindow } = require("electron");

function createWindow () {
  const win = new BrowserWindow({
    width: 1200,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  win.setMenu(null);
  win.loadFile('./dist/index.html');
}

app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы