在电子应用程序中使用vue js时出错

时间:2015-12-26 14:02:53

标签: electron

我试图在电子应用中使用vue.js,但收到以下错误:

  

未捕获异常:ReferenceError:未定义文档       在查询(/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:1070:10)       在Vue._initProps(/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:7254:23)       在Vue._initState(/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:7235:10)       在Vue._init(/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:2394:10)       在新的Vue(/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:9000:8)       在对象。 (/Users/LM/Documents/mongoui/main.js:11:1)       在Module._compile(module.js:425:26)       at Object.Module._extensions..js(module.js:432:10)       在Module.load(module.js:356:32)       在Function.Module._load(module.js:313:12)

这就是我在main.js中加载vue.js的方法:

var Vue = require('vue');

new Vue({
    el: "#app",
    data: {
        collections: [
            {"name": "test 1"},
            {"name": "test 2"},
            {"name": "test 3"}
        ]
    }
});

1 个答案:

答案 0 :(得分:4)

鉴于您的错误:

  

未捕获异常:ReferenceError:未在查询

中定义文档

我会假设您正在尝试在主要流程中使用Vue,遗憾的是Vue不能没有jsdom之类的东西,因为Vue取决于{{ 1}},主进程没有document

但是,我认为问题从根本上开始。您可能希望从渲染过程中使用Vue,因为这是document可以访问的位置。

基本上,Electron中的主要过程就像是强大的控制器,它是您生成和管理渲染过程的地方。它没有引用任何单个DOM,因为主进程中不存在DOM。相反,考虑渲染过程,渲染过程就像BrowserWindow这样可以有DOM的东西。

所以,有了这些信息,我们可以尝试这样的事情:

document

main.js

然后,从渲染过程:

// import { app, BrowserWindow } from 'electron'; var electron = require('electron'), app = electron.app, BrowserWindow = electron.BrowserWindow; app.on('ready', function() { var main = new BrowserWindow({ /* ... */ }); main.loadURL('file://' + __dirname + '/index.html'); });

index.html

当然,您可以根据需要重新组织文件,只需记住在渲染过程中使用Vue而不是主过程。

编辑2016年11月4日

Vue现在也有server side rendering,你可能想看一下。