为什么Electron正在使用以前的更改而不是最新的更改来构建React应用程序?

am46iovg  于 2023-09-28  发布在  Electron
关注(0)|答案(1)|浏览(133)

我创建了react应用程序,并使用electron-builder构建它,它工作得很好,然后我更改了代码以添加新功能,并使用相同的方法重建它,但这次我得到了以前的构建。
electron.js

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

    const path = require('path');
    const url = require('url');
    let mainWindow;

    function createWindow() {
      mainWindow = new BrowserWindow();
      mainWindow.maximize();
      //mainWindow.loadURL(isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, '../build/index.html')}`);
      mainWindow.loadURL(url.format({
        pathname: path.join(__dirname, '../build/index.html'),
        protocol: 'file:',
        slashes: true
      }));
      mainWindow.openDevTools();
      mainWindow.on('closed', () => mainWindow = null);
    }

    app.on('ready', createWindow);

    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') {
        app.quit();
      }
    });

    app.on('activate', () => {
      if (mainWindow === null) {
        createWindow();
      }
    });

package.json

{
      "name": "utility-core",
      "description": "Load bulk data to Fluent",
      "version": "0.0.2",
      "license": "ISC",
      "productName": "Fluent Bulk Import Utility",
      "author": {
        "name": "Zain Ul Abideen",
        "email": "[email protected]"
      },
      "private": true,
      "main": "public/electron.js",
      "homepage": "./",
      "dependencies": {
        "autoprefixer": "7.1.6",
        "axios": "^0.18.0",
        "babel-core": "6.26.0",
        "babel-eslint": "7.2.3",
        "babel-jest": "20.0.3",
        "babel-loader": "7.1.2",
        "babel-preset-react-app": "^3.1.1",
        "babel-runtime": "6.26.0",
        "bootstrap": "^4.1.3",
        "case-sensitive-paths-webpack-plugin": "2.1.1",
        "chalk": "1.1.3",
        "concurrently": "^4.1.1",
        "css-loader": "0.28.7",
        "dotenv": "4.0.0",
        "dotenv-expand": "4.2.0",
        "electron-is-dev": "^1.1.0",
        "eslint": "4.10.0",
        "eslint-config-react-app": "^2.1.0",
        "eslint-loader": "1.9.0",
        "eslint-plugin-flowtype": "2.39.1",
        "eslint-plugin-import": "2.8.0",
        "eslint-plugin-jsx-a11y": "5.1.1",
        "eslint-plugin-react": "7.4.0",
        "extract-text-webpack-plugin": "3.0.2",
        "file-loader": "1.1.5",
        "fs-extra": "3.0.1",
        "html-webpack-plugin": "2.29.0",
        "jest": "20.0.4",
        "jquery": "^3.4.1",
        "mdbreact": "^4.15.0",
        "object-assign": "4.1.1",
        "papaparse": "^4.6.0",
        "postcss-flexbugs-fixes": "3.2.0",
        "postcss-loader": "2.0.8",
        "promise": "8.0.1",
        "raf": "3.4.0",
        "react": "^16.4.1",
        "react-collapsible": "^2.6.0",
        "react-dev-utils": "^5.0.1",
        "react-dom": "^16.4.1",
        "react-file-reader": "^1.1.4",
        "react-router-dom": "^4.2.0",
        "react-spinners": "^0.4.6",
        "react-transition-group": "^2.2.1",
        "resolve": "1.6.0",
        "style-loader": "0.19.0",
        "sw-precache-webpack-plugin": "0.11.4",
        "universal-cookie": "^3.0.4",
        "url-loader": "0.6.2",
        "wait-on": "^3.2.0",
        "webpack": "3.8.1",
        "webpack-dev-server": "2.9.4",
        "webpack-manifest-plugin": "1.3.2",
        "whatwg-fetch": "2.0.3"
      },
      "scripts": {
        "start": "node scripts/start.js",
        "build": "node scripts/build.js",
        "test": "node scripts/test.js --env=jsdom",
        "pack": "electron-builder --dir",
        "dist": "electron-builder"
      },
      "devDependencies": {
        "csv-loader": "^3.0.2",
        "electron": "^1.8.8",
        "electron-builder": "^20.44.4",
        "electron-packager": "^8.7.2"
      },
      "jest": {
        "collectCoverageFrom": [
          "src/**/*.{js,jsx,mjs}"
        ],
        "setupFiles": [
          "<rootDir>/config/polyfills.js"
        ],
        "testMatch": [
          "<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
          "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
        ],
        "testEnvironment": "node",
        "testURL": "http://localhost",
        "transform": {
          "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
          "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
          "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
        },
        "transformIgnorePatterns": [
          "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
        ],
        "moduleNameMapper": {
          "^react-native$": "react-native-web"
        },
        "moduleFileExtensions": [
          "web.js",
          "js",
          "json",
          "web.jsx",
          "jsx",
          "node",
          "mjs"
        ]
      },
      "babel": {
        "presets": [
          "env",
          "react-app"
        ],
        "plugins": []
      },
      "eslintConfig": {
        "extends": "react-app"
      },
      "build": {
        "extends": null,
        "appId": "com.example.utility-core",
        "files": [
          "build/**/*",
          "node_modules/**/*",
          "public/electron.js"
        ],
        "directories": {
          "buildResources": "build"
        }
      }
    }

我还尝试了"electron-dev": "concurrently \" npm start\" \"wait-on http://localhost:3000 && electron .\"",但加载后,在浏览器上获得最新版本,但在桌面上的previuos版本。

xtfmy6hx

xtfmy6hx1#

因为您打包了旧的react代码。在使用electron-builder打包应用之前,您需要构建react应用。因此,您需要更改pack脚本以构建react

"pack": "npm run build && electron-builder --dir",

相关问题