Javascript “电子”;主要内容:要求您拥有js文件并从中调用函数

Javascript “电子”;主要内容:要求您拥有js文件并从中调用函数,javascript,node.js,ecmascript-6,electron,babeljs,Javascript,Node.js,Ecmascript 6,Electron,Babeljs,我很抱歉,我不能理解一些关于电子的事情。我已经寻找了几个小时的神奇答案,但什么也找不到 我的目标很简单。我不希望我的主electron.js文件有5000行,没有任何组织,所以我尝试将代码拆分为多个有意义的js文件 我的想法是在我的electron.js中使用import{someFunction1,someFunction2}from./scripts/someScript',然后使用arrow函数创建该文件并导出它们 然后我可以在主文件中调用我想要的函数。然而,这似乎是不可能的。我读过ele

我很抱歉,我不能理解一些关于电子的事情。我已经寻找了几个小时的神奇答案,但什么也找不到

我的目标很简单。我不希望我的主electron.js文件有5000行,没有任何组织,所以我尝试将代码拆分为多个有意义的js文件

我的想法是在我的electron.js中使用import
{someFunction1,someFunction2}from./scripts/someScript'
,然后使用arrow函数创建该文件并导出它们

然后我可以在主文件中调用我想要的函数。然而,这似乎是不可能的。我读过electronjs不支持ES6语法。我读过关于Babel的书(但从我读到的内容来看,它意味着一系列额外的配置,我不想花上几天的时间试图将它添加到已经混乱不堪的electron+React配置中(这里没有锅炉板)。我没有发现这个组合的任何细节

问题是,这在2021年可行吗?我遗漏了什么吗?你们有什么建议吗

文件将如下所示:

import { someNodeModuleFunction } from 'someNodeModule';

const someFunction1 = () => {
    return 1;
};

const someFunction2 = () => {
    return 2;
};

export { someFunction1, someFunction2 }

编辑

这是我遇到问题的实际代码。我仍然得到

如果文件为.js:“必须使用导入加载ES模块” 如果文件为.mjs:“不能在模块外使用导入语句”

此脚本仅使用fs创建目录:

DataManagement.mjs:

import { existsSync, mkdir } from 'fs';

const electron = require('electron');
const app = electron.app;

const documentFolder = app.getPath('documents');

const CreateDataDirectory = () => {
   const mainPath = documentFolder + 'AppName'
   if (!existsSync(mainPath)) {
      mkdir(mainPath);
   }
};

module.exports = { CreateDataDirectory } 
在electron.js中这样称呼它:

const { CreateDataDirectory } = require('./scripts/DataManagement.mjs');

[...]

CreateDataDirectory()

不确定如何划分代码有那么难。:

您可能需要使用Node.js模块语法(
require
module.exports
)或Babel(代码传输程序)

例如:

从'someNodeModule'导入{someNodeModuleFunction};
常量someFunction1=()=>{
返回1;
};
常量someFunction2=()=>{
返回2;
};
module.exports={someFunction1,someFunction2}
使用您的模块:

const { someFunction1, someFunction2 } = require ('./FILE.js');

// ...

您可以使用
模块。导出

otherModule.js

main.js


很抱歉这么晚才回复。我试过了,但没能成功。我将用实际代码和我得到的确切错误消息更新代码。这实际上是有效的。请注意我使用mkdir的错误。它仍然帮助我实现了正确的目标。非常感谢。
const someFunction1 = () => {
    return 1;
};

const someFunction2 = () => {
    return 2;
};

module.exports = {
    someFunction1,
    someFunction2
};
const { someFunction1, someFunction2 } = require('otherModule.js');