Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过node.js在Mac OS上以编程方式设置网络代理_Node.js_Macos_Electron_Electron Builder - Fatal编程技术网

如何通过node.js在Mac OS上以编程方式设置网络代理

如何通过node.js在Mac OS上以编程方式设置网络代理,node.js,macos,electron,electron-builder,Node.js,Macos,Electron,Electron Builder,我正在构建一个electron项目,其中一部分将以编程方式在Mac OS上设置系统网络代理 似乎没有内置的系统api(既不是来自nodejs也不是来自electron)可以实现这一点。作为替代方案,我通过使用child_process module撤销“networksetup”命令来更改代理。但是每次撤销都会弹出下面的密码对话框,这很烦人 上面的代码片段将弹出三次作为撤销。在开发阶段,我可以授予root权限来缓解这个问题(sudo node test.js) 我正在寻求帮助,如何在打包后解决

我正在构建一个electron项目,其中一部分将以编程方式在Mac OS上设置系统网络代理

似乎没有内置的系统api(既不是来自nodejs也不是来自electron)可以实现这一点。作为替代方案,我通过使用child_process module撤销“networksetup”命令来更改代理。但是每次撤销都会弹出下面的密码对话框,这很烦人

上面的代码片段将弹出三次作为撤销。在开发阶段,我可以授予root权限来缓解这个问题(
sudo node test.js

我正在寻求帮助,如何在打包后解决这个问题(在分发给用户后,要求用户在终端上以root权限运行应用程序是不可能的,或者是用户友好的)。我的期望是要求用户在应用程序启动时授予一次权限。在应用程序执行期间不再授予任何权限


任何帮助都将不胜感激。

ShadowsocksX NG提供的proxy_conf_helper作为替代方案。 这是供参考的链接


你应该试试
scutil
。有关更多信息,请参见
man scutil

请添加说明,因为链接将来可能会处于非活动状态
var cp = require('child_process')
cp.exec(`networksetup -setproxyautodiscovery eth0 off`, function (error, stdout, stderr) {
    if (error) {
        console.log(error)
    }
})
cp.exec(`networksetup -setautoproxystate eth0 off`, function (error, stdout, stderr) {
    if (error) {
        console.log(error)
    }
})
cp.exec(`networksetup -setwebproxystate eth0 off`, function (error, stdout, stderr) {
    if (error) {
        console.log(error)
    }
})