electron 打不同环境的包

我用的打包工具: electron-builder

1、在package.json 文件的同级下创建2个js文件

electron-builder-test.config.js electron-builder.config.js

electron-builder-test.config.js

javascript 复制代码
const basejson = require('./electron-builder.config.js');
module.exports = {
  extraMetadata: {  
    //  这个是重点,这个字段会在build的时候将NODE_ENV这个变量插入package.json文件中,所以我们才能    
    //  在别的文件中读取package.json得到NODE_ENV这个字段值,用来判断当前环境是生产还是测试
    NODE_ENV: process.env.NODE_ENV,
  },
  ...basejson
};

electron-builder.config.js (主要就是一些build的基础配置)

javascript 复制代码
module.exports = {
  productName: 'yourProductName',
  nsis: {
    include: './lib/deleteTempFiles.nsh',
    oneClick: false,
    allowToChangeInstallationDirectory: true,
    installerIcon: './app/icons/icon.ico',
    uninstallerIcon: './app/icons/icon.ico',
    installerHeaderIcon: './app/icons/icon.ico',
    installerSidebar: './app/icons/mark.bmp',
    uninstallerSidebar: './app/icons/mark.bmp',
    perMachine: true
  },
  files: ['src', 'service', 'app', 'const', 'lib'],
  appId: '',
  mac: {
    publish: [
      {
        provider: 'generic',
        url: ''
      }
    ],
    gatekeeperAssess: false,
    hardenedRuntime: true,
    entitlements: './signing/entitlements.mac.plist',
    entitlementsInherit: './signing/entitlements.mac.plist',
    extendInfo: {
      NSMicrophoneUsageDescription: 'Please give us access to your microphone',
      NSCameraUsageDescription: 'Allow your conversational partners to see you in a Grape Call. You can turn off your video anytime during a call.'
    },
    icon: './app/icons/icon.ico',
    extraFiles: [
      {
        from: './app/icons/',
        to: './Resources',
        filter: ['**/*']
      }
    ]
  },
  win: {
    publish: [
      {
        provider: 'generic',
        url: ''
      }
    ],
    icon: './app/icons/icon.ico',
    target: [
      {
        target: 'nsis',
        arch: ['x64']
      }
    ],
    extraFiles: [
      {
        from: './pages',
        to: './Resources/pages',
        filter: ['**/*']
      }
    ],
    requestedExecutionLevel: 'highestAvailable'
  },
  linux: {
    target: 'deb',
    extraFiles: []
  }
};

2、在需要区分环境的地方获取package.json文件 读取变量 区分代码

3、打包命令修改

javascript 复制代码
"build:win": "cross-env NODE_ENV=production electron-builder --config=electron-builder.config.js -w ",
"buildtest:win": "cross-env NODE_ENV=development electron-builder --config=electron-builder-test.config.js -w",
相关推荐
Gazer_S7 分钟前
【前端状态管理技术解析:Redux 与 Vue 生态对比】
前端·javascript·vue.js
小光学长19 分钟前
基于Vue的图书馆座位预约系统6emrqhc8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
Y学院30 分钟前
vue的组件通信
前端·javascript·vue.js
患得患失94931 分钟前
【ThreeJs】【伪VR】用 Three.js 实现伪 VR 全景看房系统:低成本实现 3D 级交互体验
javascript·3d·vr
PairsNightRain33 分钟前
React Concurrent Mode 是什么?怎么使用?
前端·react.js·前端框架
小岛前端1 小时前
React 剧变!
前端·react.js·前端框架
teeeeeeemo1 小时前
Webpack 模块联邦(Module Federation)
开发语言·前端·javascript·笔记·webpack·node.js
岁月宁静2 小时前
AI聊天系统 实战:打造优雅的聊天记录复制与批量下载功能
前端·vue.js·人工智能
小小弯_Shelby2 小时前
uniApp App内嵌H5打开内部链接,返回手势(左滑右滑页面)会直接关闭H5项目
前端·uni-app
IT_陈寒2 小时前
SpringBoot性能飞跃:5个关键优化让你的应用吞吐量提升300%
前端·人工智能·后端