ElectronJS、JavaScript和Python-require没有定义所有选项

ElectronJS、JavaScript和Python-require没有定义所有选项,javascript,html,node.js,python-3.x,electron,Javascript,Html,Node.js,Python 3.x,Electron,我尝试执行以下行时遇到问题: var path = require('path') 我明白了 Uncaught ReferenceError: require is not defined 所有的工作都很好,除了需要错误,为什么 我有3个文件: translate.js: function get_translate(){ var path = require('path') var trans = document.getElementById("trans").value docum

我尝试执行以下行时遇到问题:

var path = require('path') 
我明白了

Uncaught ReferenceError: require is not defined
所有的工作都很好,除了需要错误,为什么

我有3个文件:

translate.js:

function get_translate(){
var path = require('path') 
var trans = document.getElementById("trans").value
document.getElementById("trans").value = ""

var options = {
scriptPath : path.join(__dirname, '/../engine/'),
args : [trans]
}
translate = PythonShell.run('translate_engine.py', options);
translate.on('message', function(message) {
swal(message);
})
}
translate.html:

<head>
<link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
</script>
<script src="linkers/translate.js"></script>
</head>

<body>
<br>
<div class="container">
<button="btn btn-info"><a style="color:white" href="gui.html">Back</a> 
</button>

<div class="jumbotron">
  <h1>Translate App</h1>
  <br>
  <label>Enter you word here</label>
  <input id="trans" type="text" placeholder="Text"/>
  <button class="but but-success" onclick="get_translate()">Go</button>
</div>
</body>

thank's

您是否试图在电子浏览器窗口中执行此代码

如果是,请检查启动
浏览器窗口时
节点集成
是否未设置为
false

mainWindow=新浏览器窗口({
最小宽度:370,
身高:520,
网络首选项:{
无融合:没错,
},
});
默认情况下,
nodeIntegration
实际上是
true
,因此您也可以删除这一行–我只是想让它变得非常明显;)

只要
nodeIntegration
true
,您就可以在电子渲染过程中运行任何nodeJS代码

这超出了您最初的问题,它有点高级,但是如果您不想启用它,因为它附带了许多,您可以只向渲染过程公开某些nodeJS方法。您可以使用预加载脚本来实现这一点

mainWindow=新浏览器窗口({
...
网络首选项:{
不整合:错,
preload:path.join(\uuu dirname,'preload.js')//在这里,您可以重新公开某些方法,例如'require'`
},
});
预加载字符串(可选)-指定将在页面中运行其他脚本之前加载的脚本。无论节点集成是打开还是关闭,此脚本始终可以访问节点API。该值应为脚本的绝对文件路径。关闭节点集成后,预加载脚本可以将节点全局符号重新引入全局范围

更多信息可在此处找到:

require('path')
是针对NodeJS的,而不是浏览器中的JS,我明白,但我如何解决这个问题?我只想在表单中编写文本,然后单击go并将文本打印到屏幕上。你无法真正“修复”它。您正在为两个完全不同的平台混合使用代码。如果您想在浏览器中使用节点包,请使用类似browserify或itok周围的网页包,谢谢。有人能帮我修改代码,让我从中学习吗?
import sys
trans = sys.argv[1]
print(trans)
sys.stdout.flush()