Javascript 如何导出分配给变量的require?
我正在做以下操作,以使此Javascript 如何导出分配给变量的require?,javascript,node.js,webpack,vue.js,electron,Javascript,Node.js,Webpack,Vue.js,Electron,我正在做以下操作,以使此要求在中可见,您似乎在尝试将电子定义为一个全局变量;为此,您可以在第一个示例中的index.html中设置window.electron=require('electron')。(它将在bundle.js中提供) 但是,使用globals来处理这种糟糕的做法是没有必要的。您应该做的是在代码中使用require。您说这不起作用:它不起作用的原因可能是您正在使用webpack或类似的东西来创建bundle.js。此外,您可能在Node中而不是在Electron中运行捆绑过程,
要求
在中可见,您似乎在尝试将电子
定义为一个全局变量;为此,您可以在第一个示例中的index.html中设置window.electron=require('electron')
。(它将在bundle.js中提供)
但是,使用globals来处理这种糟糕的做法是没有必要的。您应该做的是在代码中使用require
。您说这不起作用:它不起作用的原因可能是您正在使用webpack或类似的东西来创建bundle.js
。此外,您可能在Node中而不是在Electron中运行捆绑过程,因此require('Electron')
无法按预期工作。请注意,它在您的index.html
中起作用,它不是捆绑包的一部分
如果要继续使用此设置,可以重命名Electron的require,以区分捆绑期间解析的require
和运行时解析的require
。换句话说,在index.html的脚本标记中,window.electronRequire=require
,然后在代码中使用electronRequire('electron')
既然如此,为什么首先要捆绑所有东西?Electron具有完整的节点集成,因此您可以使用常规节点模块;文件也不是通过HTTP发送的,因此将所有内容捆绑到一个文件中几乎没有什么好处。可能是module.exports
而不是exports
?谢谢您的建议。我使用的是Vue.js,它使用.Vue
文件。Webpack将它们编译成JavaScript。但我认为你是对的,我会考虑不要捆绑代码。
<script>
var electron = require('electron')
</script>
<app></app>
<script src="bundle.js"></script>
const ipc = electron.ipcRenderer
console.log(ipc)
var electron = require('electron')
exports.electron = electron
<script src="requires.js"></script>
</head>
<body>
<app></app>
<script src="bundle.js"></script>