Я использую Vue с электронным для создания настольного приложения. Я использую VUE плагины для расширения функциональности приложения. Эти плагины vue размещаются в виде модулей npm в каталоге npm, который можно установить из хранилища плагинов приложений с помощью live-plugin-manager, который можно использовать для динамической установки плагинов в каталог plugins .
Я использую webpack для компиляции vue-интерфейса. Когда я напрямую использую эти плагины, они работают отлично. Мне нужно знать, есть ли способ динамической загрузки этих плагинов из папки при каждом запуске приложения.
Я собрал функциональные возможности для установки и удаления плагинов. Но я не могу требовать эти модули в приложение VUE. Я попытался с помощью электронного вызова remote.require извлечь модуль и использовать цикл Vue.use () с загруженным плагином. Но я продолжаю получать ошибку.
// loading plugins
const plugs = await plugins.load()
console.log(plugs)
plugs.forEach(plug => {
console.log(plug.install)
Vue.use(plug)
})
// the plugins.load
const remote = window.require('electron').remote
if (remote) {
const packager = remote.require('./package').default
return packager.requireEnabled()
}
// the packager.requireEnabled() will load the enabled plugins
Эта ошибка появляется каждый раз, когда я использую приведенный выше код.
Uncaught (in promise) Error: Could not call remote function 'install'. Check that the function signature is correct. Underlying error: Vue.use is not a function
at callFunction (C:\Arjun\Tracing Paper Designs\works\Infolks\Tool\infolks-tool\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:260:17)
at C:\Arjun\Tracing Paper Designs\works\Infolks\Tool\infolks-tool\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:411:10
at EventEmitter.<anonymous> (C:\Arjun\Tracing Paper Designs\works\Infolks\Tool\infolks-tool\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:275:21)
at EventEmitter.emit (events.js:194:13)
at WebContents.<anonymous> (C:\Arjun\Tracing Paper Designs\works\Infolks\Tool\infolks-tool\node_modules\electron\dist\resources\electron.asar\browser\api\web-contents.js:418:21)
at WebContents.emit (events.js:194:13)