Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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 如何使用参数运行electron应用程序?_Node.js_Npm_Electron - Fatal编程技术网

Node.js 如何使用参数运行electron应用程序?

Node.js 如何使用参数运行electron应用程序?,node.js,npm,electron,Node.js,Npm,Electron,我的应用程序是electron,带有浏览器窗口加载本地页面索引.html。 我调用npm run start脚本运行electron main.js,应用程序打开并加载html。 我是否可以向脚本添加一个参数,将不同的html文件加载到浏览器窗口 在main.js文件中,代码是: 函数createWindow(){ //创建浏览器窗口。 主窗口=新浏览器窗口({ 网络首选项:{ 网站安全性:false }, 全屏:false});/,始终为top:true,kiosk:true}) 主窗口.设置

我的应用程序是electron,带有
浏览器窗口
加载本地页面索引.html。
我调用
npm run start
脚本运行
electron main.js
,应用程序打开并加载html。
我是否可以向脚本添加一个参数,将不同的html文件加载到
浏览器窗口

在main.js文件中,代码是:

函数createWindow(){
//创建浏览器窗口。
主窗口=新浏览器窗口({
网络首选项:{
网站安全性:false
},
全屏:false});/,始终为top:true,kiosk:true})
主窗口.设置菜单(空);
//并加载应用程序的index.html。
让url=`file://${uuuu dirname}/index.html`.\ \index.html应该由开始时传递的参数确定。
loadURL(url,loadOptions);
//打开DevTools。
main window.webContents.openDevTools();
//当窗口关闭时发出。
mainWindow.on('closed',函数(){
//取消对窗口对象的引用,通常会存储窗口
//在阵列中,如果您的应用程序支持多个窗口,则此时
//何时应该删除相应的元素。
主窗口=空;
});
}

传递参数的方式将是相同的,唯一需要注意的是电子的路径。在
package.json
中,其编写的
npm
start将执行
electron main.js
。因此,您必须显式执行此命令,并使用“正确的电子路径”传递参数,即
/node\u modules/.bin/electron
。然后命令将被删除

./node_modules/.bin/electron main.js argv1 argv2
您可以通过
main.js中的
process.argv
访问这些参数

如果您希望在应用程序中访问这些参数,则需要执行以下操作:

1.在main.js中定义一个变量,如

     global.sharedObject = {prop1: process.argv}
2.在您的应用程序中,只需包含remote并使用此
sharedObject

    var remote = require('electron').remote,
      arguments = remote.getGlobal('sharedObject').prop1;

    console.log(arguments);
3.输出将是
[“argv1”、“argv2”]


来源:

卸载DisplayName

这使您可以在中为程序的条目指定自定义名称 添加/删除程序控制面板小程序。该值可能包括 常数。如果未指定此指令或该指令为空,则安装程序将 使用[Setup]节指令AppVerName的值作为名称

阅读更多信息:


要将命令行参数传递给electron app,请执行以下操作:

./node_modules/.bin/electron main.js --arg1=value --arg2=value
可以在main.js中这样检索它:

import { app } from "electron";
app.commandLine.getSwitchValue("arg1");
app.commandLine.getSwitchValue("arg2");

process.argv
是否未填充?是的,但我如何传递my的参数,如-html=index2.htmlf对于一些对此感到困扰的人,请不要忘记在控制台中设置:>set ELECTRON\u ENABLE\u LOGGING=true
import { app } from "electron";
app.commandLine.getSwitchValue("arg1");
app.commandLine.getSwitchValue("arg2");