PicList/vue.config.js
2024-06-16 21:11:21 +08:00

138 lines
3.5 KiB
JavaScript

const path = require('path')
function resolve (dir) {
return path.join(__dirname, dir)
}
const config = {
configureWebpack: {
devtool: 'nosources-source-map'
},
chainWebpack: config => {
config.resolve.alias
.set('@', resolve('src/renderer'))
.set('~', resolve('src/main'))
.set('root', resolve('./'))
.set('#', resolve('src/universal'))
},
pluginOptions: {
electronBuilder: {
nodeIntegration: true,
customFileProtocol: 'picgo://./',
externals: ['piclist'],
chainWebpackMainProcess: config => {
config.resolve.alias
.set('@', resolve('src/renderer'))
.set('~', resolve('src/main'))
.set('root', resolve('./'))
.set('#', resolve('src/universal'))
.set('apis', resolve('src/main/apis'))
.set('@core', resolve('src/main/apis/core'))
config.resolve.mainFields
.clear()
.add('main') // fix some modules will use browser target
.add('module')
config.module
.rule('node')
.test(/\.node$/)
.use('node-loader')
.loader('node-loader')
.end()
},
builderOptions: {
productName: 'PicList',
appId: 'com.kuingsmile.piclist',
afterSign: 'scripts/notarize.js',
publish: [
{
provider: 's3',
bucket: 'piclist-dl',
region: 'auto',
acl: 'private',
endpoint: 'https://7ab4ed5cb1f4052a13d3b573876ecf33.r2.cloudflarestorage.com',
path: '/latest'
},
{
provider: 'github',
owner: 'Kuingsmile',
repo: 'PicList',
releaseType: 'draft'
}
],
dmg: {
sign: false,
contents: [
{
x: 410,
y: 150,
type: 'link',
path: '/Applications'
},
{
x: 130,
y: 150,
type: 'file'
}
]
},
mac: {
icon: 'build/icons/icon.icns',
extendInfo: {
LSUIElement: 0
},
target: [{
target: 'default',
arch: [
'universal',
'x64',
'arm64'
]
}],
// eslint-disable-next-line no-template-curly-in-string
artifactName: 'PicList-${version}-${arch}.${ext}'
},
win: {
icon: 'build/icons/icon.ico',
// eslint-disable-next-line no-template-curly-in-string
artifactName: 'PicList-Setup-${version}-${arch}.exe',
verifyUpdateCodeSignature: false,
target: [{
target: 'nsis',
arch: [
'x64',
'ia32'
]
}]
},
nsis: {
shortcutName: 'PicList',
oneClick: false,
allowToChangeInstallationDirectory: true,
include: 'build/installer.nsh'
},
linux: {
icon: 'build/icons/',
asarUnpack: [
'**/node_modules/sharp/**',
'**/node_modules/ssh2-no-cpu-features/**'
]
},
snap: {
publish: ['github']
}
}
}
}
}
if (process.env.NODE_ENV === 'development') {
config.configureWebpack = {
devtool: 'source-map'
}
// for dev main process hot reload
config.pluginOptions.electronBuilder.mainProcessWatch = ['src/main/**/*']
}
module.exports = {
...config
}