ElectronJS es un marco de código abierto que se utiliza para crear aplicaciones de escritorio nativas multiplataforma utilizando tecnologías web como HTML, CSS y JavaScript que pueden ejecutarse en los sistemas operativos Windows , macOS y Linux . Combina el motor Chromium y NodeJS en un solo tiempo de ejecución.
Los argumentos de la línea de comandos son parámetros que se pasan al programa cuando se invoca. Diferentes lenguajes de programación y marcos usan diferentes métodos para analizar estos argumentos. Los argumentos de la línea de comandos son importantes porque se pueden usar para controlar el comportamiento de la aplicación. Estos argumentos se pasan a la función principal de cualquier aplicación. Electron también admite argumentos de línea de comandos. Podemos pasar argumentos de línea de comandos a Electron desde fuera de la aplicación al invocarlos o simplemente podemos codificar estos valores utilizando los métodos de instancia de la propiedad de línea de comandos integrada del módulo de aplicación de Electron. Este tutorial demostrará cómo agregar argumentos de línea de comandos en Electron.
Suponemos que está familiarizado con los requisitos previos que se describen en el enlace mencionado anteriormente. Para que Electron funcione, node y npm deben estar preinstalados en el sistema.
- Estructura del proyecto:
Argumentos de la línea de comandos en Electron El módulo de la aplicación y la propiedad CommandLine son parte del proceso principal . Necesitamos agregar los argumentos de la línea de comandos al proceso principal de la aplicación antes de que se emita el evento listo del módulo de la aplicación . En Electron, la propiedad CommandLine se usa para leer y manipular los argumentos de la línea de comandos que Chromium lee y usa. Se pueden usar para controlar y anular el comportamiento predeterminado de Chromium. Para obtener una lista detallada de indicadores y conmutadores de línea de comandos admitidos que se pueden usar en Electron. También usaremos algunas de estas banderas e interruptores para demostración. losLa propiedad CommandLine solo admite métodos de instancia. No tiene eventos ni propiedades de instancia asociados.
Ejemplo: siga los pasos de dar para pasar argumentos de línea de comandos en Electron.
- Paso 1: siga los pasos dados en Arrastrar y soltar archivos en ElectronJS para configurar la aplicación electrónica básica. Copie el código estándar para el archivo main.js y el archivo index.html como se indica en el artículo. Realice también los cambios necesarios mencionados para el archivo package.json para iniciar la aplicación Electron. Continuaremos construyendo nuestra aplicación usando la misma base de código.
paquete.json:
{ "name": "electron-command", "version": "1.0.0", "description": "Command Line Switches in Electron", "main": "main.js", "scripts": { "start": "electron ." }, "keywords": [ "electron" ], "author": "Radhesh Khanna", "license": "ISC", "dependencies": { "electron": "^8.3.0" } }
- Cree la carpeta de activos según la estructura del proyecto. Usaremos esta carpeta para almacenar registros .
Salida: en este punto, nuestra aplicación electrónica básica está configurada. Al iniciar la aplicación, deberíamos ver el siguiente resultado.
- Paso 2: ahora pasaremos los argumentos de la línea de comandos a la aplicación Electron usando cualquiera de los dos enfoques.
- Enfoque 1: pasar argumentos de la línea de comandos al iniciar la aplicación. Usaremos el modificador de línea de comandos –log-net-log=path . Este conmutador permite registrar eventos de registro de red y escribe los registros generados en el archivo de ruta . Ya hemos realizado los cambios necesarios en el archivo package.json para iniciar la aplicación mediante el script de inicio . Modificaremos este script para pasar este interruptor de línea de comandos.
package.json: cambie el siguiente fragmento de código en ese archivo. - Salida: al iniciar la aplicación, Chromium habilitará el registro de red y se generará automáticamente un archivo log.txt dentro de la carpeta de activos con las entradas de registro de red iniciales.
- Enfoque 2: pasar argumentos de la línea de comandos mediante la propiedad CommandLine del módulo de la aplicación .
main.js Agregue el siguiente fragmento de código al comienzo del archivo justo después de importar el módulo de la aplicación y antes de que se emita el evento listo .
- Enfoque 1: pasar argumentos de la línea de comandos al iniciar la aplicación. Usaremos el modificador de línea de comandos –log-net-log=path . Este conmutador permite registrar eventos de registro de red y escribe los registros generados en el archivo de ruta . Ya hemos realizado los cambios necesarios en el archivo package.json para iniciar la aplicación mediante el script de inicio . Modificaremos este script para pasar este interruptor de línea de comandos.
javascript
const { app, BrowserWindow } = require("electron"); app.commandLine.appendSwitch("log-net-log", "assets/log.txt"); console.log(app.commandLine.hasSwitch("log-net-log")); console.log(app.commandLine.getSwitchValue("log-net-log"));
A continuación se explica una explicación detallada de todos los métodos de instancia de la propiedad CommandLine utilizados en el código. Para obtener información más detallada sobre la propiedad CommandLine .
- commandLine.appendSwitch(interruptor, valor) Este método agrega un interruptor con un parámetro de valor opcional a la línea de comando de Chromium cuando se invoca la aplicación. Este método no tiene ningún tipo de retorno. Toma los siguientes parámetros. En nuestro código, hemos usado este método Instance para agregar el modificador de línea de comandos –log-net-log=path .
- modificador: string Un modificador de línea de comandos sin el encabezado : para agregar a la línea de comandos de Chromium al invocar la aplicación. Este valor no puede estar vacío.
- valor: string (opcional) Un valor de string para el conmutador dado, si admite alguno. En caso de que Switch tome un valor booleano, envolveremos el booleano dentro de String para que se pase a través de este método. En nuestro código, hemos especificado la ruta a la carpeta de activos . Por defecto, tomará el CWD (Directorio de trabajo actual).
- commandLine.hasSwitch(switch) Este método se utiliza para comprobar si hay un modificador de línea de comandos cuando se invoca la aplicación desde el exterior, como el script de inicio en el archivo package.json o si se ha añadido mediante el método commandLine.appendSwitch() . Devuelve un valor booleano que indica si el modificador de línea de comandos está presente. Toma los siguientes parámetros.
- interruptor: string Un interruptor de línea de comando sin el encabezado : para verificar la línea de comando de Chromium. Este valor no puede estar vacío.
- commandLine.getSwitchValue(switch) Este método se utiliza para devolver el valor de Switch de la línea de comandos , si lo hay. Devuelve un valor de string . En caso de que el modificador de la línea de comandos no esté presente o no haya ningún valor, devolverá una string vacía . Toma los siguientes parámetros.
- interruptor: string Un interruptor de línea de comando sin el encabezado : para verificar la línea de comando de Chromium. Este valor no puede estar vacío.
- commandLine.appendArgument(argumento) Este método se usa para agregar un argumento a la línea de comandos de Chromium cuando se invoca la aplicación. El argumento será citado adecuadamente por la aplicación. Este método no tiene ningún tipo de retorno. Este método es similar al método commandLine.appendSwitch() pero los modificadores de la línea de comandos siempre precederán a los argumentos, independientemente del orden de adición. En caso de que queramos agregar un modificador de línea de comando como un argumento completo, por ejemplo, ‘–log-net-log=assets/log.txt’ , entonces no debemos usar este método. Deberíamos usar el método commandLine.appendSwitch() en su lugar. Toma los siguientes parámetros.
- argument: String Un argumento de string que se agregará a la línea de comandos de Chromium. Este valor no puede estar vacío.
Publicación traducida automáticamente
Artículo escrito por radheshkhanna y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA