Refine platform-specific packaging filters

This commit is contained in:
ILoveBingLu
2026-04-08 17:52:28 +08:00
parent 0afe437813
commit 08dbbf8f93
2 changed files with 45 additions and 0 deletions
+44
View File
@@ -3,6 +3,15 @@ const pkg = require('../package.json')
const target = process.env.CIPHERTALK_BUILD_TARGET
const base = pkg.build || {}
function appendUnique(items = [], extras = []) {
return [...new Set([...(items || []), ...extras])]
}
function withoutItems(items = [], values = []) {
const blacklist = new Set(values)
return (items || []).filter(item => !blacklist.has(item))
}
function getExtraResources(buildTarget) {
const common = [
{
@@ -70,8 +79,43 @@ function getExtraFiles(buildTarget) {
return []
}
function getFiles(buildTarget) {
const baseFiles = Array.isArray(base.files) ? [...base.files] : []
const commonFiles = [
'!node_modules/.vite/**/*'
]
if (buildTarget === 'win') {
return appendUnique(
withoutItems(baseFiles, ['node_modules/koffi/build/**/*']),
[
...commonFiles,
'!node_modules/onnxruntime-node/bin/**/win32/arm64/**/*',
'node_modules/koffi/build/koffi/win32_x64/**/*'
]
)
}
return appendUnique(baseFiles, commonFiles)
}
function getAsarUnpack(buildTarget) {
const baseAsarUnpack = Array.isArray(base.asarUnpack) ? [...base.asarUnpack] : []
if (buildTarget === 'win') {
return appendUnique(
withoutItems(baseAsarUnpack, ['node_modules/koffi/**/*']),
['node_modules/koffi/build/koffi/win32_x64/**/*']
)
}
return baseAsarUnpack
}
module.exports = {
...base,
files: getFiles(target),
asarUnpack: getAsarUnpack(target),
extraResources: getExtraResources(target),
extraFiles: getExtraFiles(target)
}