选用Vue3,npm i @vue-cli
vue create demo
则会在demo目录下创建Vue项目
vue add electron-builder
增加打包软件
然后其实就可以运行项目了,我们选择用yarn
其实就是本文的核心重点,一开始要么是报Electron安装错误,要么就是nsis有问题,我们需要配置npmrc
electron_mirror=https://npm.taobao.org/mirrors/electron/
electron-builder-binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/
然后就能打包成功
因为我用的是iview,打包后所有的icon都丢了
vue.config.js增加这三行代码
customFileProtocol: "./",
publicPath: './',
assetsDir: "./",
提供完整的vue.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
pluginOptions:{
electronBuilder:{
customFileProtocol: "./",
publicPath: './',
assetsDir: "./",
nodeIntegration:true,
files: ['./node_modules'],
builderOptions: {
asar: true,
nsis: {
oneClick: false, // 是否一键安装
allowElevation: true, // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
allowToChangeInstallationDirectory: true, // 允许修改安装目录
// installerIcon: '', // 安装图标
// uninstallerIcon: '', //卸载图标
// installerHeaderIcon: '', // 安装时头部图标
// shortcutName: '', // 图标名称
createDesktopShortcut: true,
createStartMenuShortcut: true
},
win: {
icon: './Goldbrick.ico', // 打包后的应用图标 public 目录下的图标 注意图标最小255 * 255,否则打包会报错
artifactName: 'Goldbrick_${version}.${ext}', // 打包后的执行文件名称
// artifactName: 'chain-desktop_setup_${version}.${ext}', // 打包后的安装包名称
target: ['nsis', 'zip'] // 打包成安装包和免安装版
},
mac: {
icon: './public/app.jpg'
},
productName: 'Goldbrick_v0.0.1' // 应用名称
}
}
},
publicPath: './', // 公共路径 如果放在服务器下的 admin 目录下 就配置 './admin'
// outputDir: 'chain', // 打包后的目录名
productionSourceMap: false, // 打包后不要sourcemap
chainWebpack: config => {
config.plugins.delete('prefetch')
config.plugins.delete('preload');
},
css: {
loaderOptions: {
sass: {
// prependData: `@import "@/assets/style/base.scss";`
},
},
},
})