gpt4 book ai didi

javascript - main.js的外包功能

转载 作者:行者123 更新时间:2023-12-03 12:40:30 25 4
gpt4 key购买 nike

我已经开始从头开始构建 Electron 应用程序。到目前为止,我可以通过将所有逻辑插入mainWindow来修改main.js,但是我想将逻辑保留在单独的文件中。不幸的是,我无法正确导入它们,所以帮助会很好。

// main.js
const { app, BrowserWindow, Menu, dialog } = require('electron');
const fs = require('fs');

const { test } = require('./test'); // test module to be imported

let win;

function createWindow() {
win = new BrowserWindow({
icon: `file://${__dirname}/dist/text-editor/favicon.ico`,
webPreferences: {
nodeIntegration: true
}
});
win.maximize();

win.loadURL(`file://${__dirname}/dist/text-editor/index.html`);

win.webContents.openDevTools();

//menu bar
const template = getTemplate();
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);


win.on('closed', function () {
win = null;
});

console.log(test.getName()); // throws error
}

// create window on electron init
app.on('ready', createWindow);

// quit when all windows are closed
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
});

app.on('activate', function () {
if (win === null) {
createWindow();
}
});

function getTemplate() {...} // for example move this method to new file

// test.js
const getName = () => {
return "Tom";
};

module.exports.getName = getName;

使用 ng build --prod && electron .运行此代码将引发:

Cannot read property 'getName' of undefined.



提前致谢 ;)

最佳答案

请将您的js导入为const test = require('./test'),然后在您的主要js文件中使用test.getName()。当调用const {test}试图将test对象导入到at相关文件中时。您可以从此answer了解更多相关信息

关于javascript - main.js的外包功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61819513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com