неожиданный экспорт токена в электронном режиме js - PullRequest
0 голосов
/ 04 февраля 2020

Я использую основной файл biolerplate.electron для электронной реакции. js файл помещен в папку publi c. Я хочу добавить еще один электронный файл в общие константы функции. Когда я пытаюсь использовать этот файл, который он выдает выше ошибка. Я хочу оставить main. js кратким. Вот почему я использую другой файл

/ public / renderer / command-executor. js

export const  executeCommandWithOutput=(command)=>{
    const { exec } = require('child_process');
    console.log(command);
    return new Promise((resolve, reject) => {
      console.log('inside promise');
        exec(command, (err, stdout, stderr) => {
          console.log('inside execsync');
            if (err) {
              console.log(err);

                resolve(err);
            } else if (stderr) {
              console.log(stderr)

                resolve(stderr);
            } else {
                resolve(stdout);
            }
        });
    });
  }

public / main. js

const commandExecutor=require('./renderer/command-executor');
electron.ipcMain.on('launch-App',async(event,args)=>{
     commandExecutor.executeCommandWithOutput(`powershell -Command "& {Start-Process -Verb runas '${playLink}'}"`);

});

1 Ответ

2 голосов
/ 04 февраля 2020

Проблема в том, что вы пытаетесь смешать оператор ES5 require с синтаксисом ES6 для export. Эти два несовместимы. Вы должны либо использовать одно, либо другое.

Если ваша реализация ES6 с babel работает нормально, вы должны использовать оператор import, например, такой:

// exporting like you are at the moment (called a named export):
export const executeCommandWithOutput = (command) =>{
    ...
}

// importing like so:
import { executeCommandWithOutput } from './renderer/command-executor';

Но если вы Вы используете require в public/main.js, ваш оператор export должен выглядеть примерно так:

exports.executeCommandWithOutput = executeCommandWithOutput

, а ваш require останется прежним.

Вот статья чтобы помочь вам лучше понять, что происходит, как работает функциональность export в ES5 и чего вы можете с ее помощью: https://www.sitepoint.com/understanding-module-exports-exports-node-js/

Аналогично с синтаксисом ES6: https://alligator.io/js/modules-es6/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...