Javascript “电子”;主要内容:要求您拥有js文件并从中调用函数
我很抱歉,我不能理解一些关于电子的事情。我已经寻找了几个小时的神奇答案,但什么也找不到 我的目标很简单。我不希望我的主electron.js文件有5000行,没有任何组织,所以我尝试将代码拆分为多个有意义的js文件 我的想法是在我的electron.js中使用importJavascript “电子”;主要内容:要求您拥有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
{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');