javascript - 我打包的 electron 应用程序没有打开(我怀疑这是包中的问题。json)

我无法打开我打包的 electron 应用程序,它创建了文件夹发布版本,但我无法打开它创建的 exe 文件。我怀疑问题出在 package.json 中。如果我做 npm start 应用程序正在启动和工作。我有点摆弄 package.json 安装像 electron-build 这样的模块我想我当时一定做错了什么。我认为这个问题只是一个错字,但我找不到错字。这是错误

mysecondelectron-proj@1.0.0 package-win electron-packager 。 electron-tutorial-app --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName="Notes"

警告:--asar 不接受任何参数,它只有子属性(请参阅--help)使用 electron v18.2.3 为平台 win32 ia32 打包应用程序警告:找到“electron”但不是作为 devDependency,无论如何修剪 将新应用程序写入 release-builds\electron-tutorial-app-win32-ia32 。这个文件是包。json

{
  "name": "mysecondelectron-proj",
  "version": "1.0.0",
  "description": "My note taking App",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron .",
    "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
    "package-win": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Notes\"",
    "package-linux": "electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/icon.png --prune=true --out=release-builds"
  },
  "author": "Keegan Albert",
  "license": "MIT",
  "dependencies": {
    "electron": "^18.2.3"
  }
}

main.js

const electron = require("electron");
const url = require("url");
const path = require("path");


const {app , BrowserWindow , Menu , ipcMain} = electron;

let mainWindow;
let addWindow;

app.on('ready' , function(){
    mainWindow = new BrowserWindow({
      webPreferences: {
        nodeIntegration: true,
        contextIsolation: false,
      }
    });
    mainWindow.loadURL(url.format({
        pathname: path.join(__dirname , 'mainWindow.html'),
        protocol: 'file:',
        slashes: true 
    }))
    mainWindow.on('closed' , function(){
        app.quit();
    })
})



function createAddWindow(){
    addWindow = new BrowserWindow({
      width: 300,
      height:200,
      title:'Add Shopping List Item',
      webPreferences: {
        nodeIntegration: true,
        contextIsolation: false,
      }
    });
    addWindow.loadURL(url.format({
      pathname: path.join(__dirname, 'addNoteWindow.html'),
      protocol: 'file:',
      slashes:true
    }));
    // Handle garbage collection
    addWindow.on('close', function(){
      addWindow = null;
    });
  }



const mainMenuTemplate =  [{
    label: 'File',
    submenu: [
        {
        label: 'Quit',
        accelerator: process.platform == 'darwin' ? 'Command+Q' : 'Ctrl+Q',
        click(){
            app.quit();
        }
        },
        {
            label: 'Add Note',
            accelerator: process.platform == 'darwin' ? 'Command+N' : 'Ctrl+N',
            click(){
                createAddWindow();
            }
        },
        {
          label:'Clear Items',
          accelerator: process.platform == 'darwin' ? 'Command+D' : 'Ctrl+D',
          click(){
            mainWindow.webContents.send('item:clear');
          }
        }
        ]
}]


webPreferences: {
    devTools: false
 }

 if(process.env.NODE_ENV !== 'production'){
  mainMenuTemplate.push({
    label: 'Developer Tools',
    submenu:[
      {
        role: 'reload'
      },
      {
        label: 'Toggle DevTools',
        accelerator:process.platform == 'darwin' ? 'Command+I' : 'Ctrl+I',
        click(item, focusedWindow){
          focusedWindow.toggleDevTools();
        }
      }
      
     
    ]
  });
}


const mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
Menu.setApplicationMenu(mainMenu);

ipcMain.on('item:add' , function(e , item){
  mainWindow.webContents.send('item:add' , item);
  addWindow.close();
});

回答1

electron 包应该列为 devDependency 而不是依赖项,我认为这就是为什么在构建它时会对其进行修剪的原因。试试这个包。json:

{
  "name": "mysecondelectron-proj",
  "version": "1.0.0",
  "description": "My note taking App",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron .",
    "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
    "package-win": "electron-packager . electron-tutorial-app --overwrite --asar --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Notes\"",
    "package-linux": "electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/icon.png --prune=true --out=release-builds"
  },
  "author": "Keegan Albert",
  "license": "MIT",
  "devDependencies": {
    "electron": "^18.2.3",
    "electron-packager": "^15.5.1"
  }
}

相似文章

npm - 无法“npm 安装”

请问我可以就以下问题寻求帮助:我已经像这样克隆了Electron入门应用程序:gitclonehttps://github.com/electron/electron-quick-start并让它运行...

随机推荐

最新文章