refactor(after-pack): rename function to keepArchNodeFiles and update logic for retaining architecture-specific node modules
close PR#4522
This commit is contained in:
parent
efcffbaa30
commit
8a579be4c1
@ -18,35 +18,48 @@ exports.default = async function (context) {
|
|||||||
'node_modules'
|
'node_modules'
|
||||||
)
|
)
|
||||||
|
|
||||||
removeDifferentArchNodeFiles(node_modules_path, '@libsql', arch === Arch.arm64 ? ['darwin-arm64'] : ['darwin-x64'])
|
keepPackageNodeFiles(node_modules_path, '@libsql', arch === Arch.arm64 ? ['darwin-arm64'] : ['darwin-x64'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (platform === 'linux') {
|
if (platform === 'linux') {
|
||||||
const node_modules_path = path.join(context.appOutDir, 'resources', 'app.asar.unpacked', 'node_modules')
|
const node_modules_path = path.join(context.appOutDir, 'resources', 'app.asar.unpacked', 'node_modules')
|
||||||
const _arch = arch === Arch.arm64 ? ['linux-arm64-gnu', 'linux-arm64-musl'] : ['linux-x64-gnu', 'linux-x64-musl']
|
const _arch = arch === Arch.arm64 ? ['linux-arm64-gnu', 'linux-arm64-musl'] : ['linux-x64-gnu', 'linux-x64-musl']
|
||||||
removeDifferentArchNodeFiles(node_modules_path, '@libsql', _arch)
|
keepPackageNodeFiles(node_modules_path, '@libsql', _arch)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (platform === 'windows') {
|
if (platform === 'windows') {
|
||||||
const node_modules_path = path.join(context.appOutDir, 'resources', 'app.asar.unpacked', 'node_modules')
|
const node_modules_path = path.join(context.appOutDir, 'resources', 'app.asar.unpacked', 'node_modules')
|
||||||
if (arch === Arch.arm64) {
|
if (arch === Arch.arm64) {
|
||||||
removeDifferentArchNodeFiles(node_modules_path, '@strongtz', ['win32-arm64-msvc'])
|
keepPackageNodeFiles(node_modules_path, '@strongtz', ['win32-arm64-msvc'])
|
||||||
removeDifferentArchNodeFiles(node_modules_path, '@libsql', ['win32-arm64-msvc'])
|
keepPackageNodeFiles(node_modules_path, '@libsql', ['win32-arm64-msvc'])
|
||||||
}
|
}
|
||||||
if (arch === Arch.x64) {
|
if (arch === Arch.x64) {
|
||||||
removeDifferentArchNodeFiles(node_modules_path, '@strongtz', ['win32-x64-msvc'])
|
keepPackageNodeFiles(node_modules_path, '@strongtz', ['win32-x64-msvc'])
|
||||||
removeDifferentArchNodeFiles(node_modules_path, '@libsql', ['win32-x64-msvc'])
|
keepPackageNodeFiles(node_modules_path, '@libsql', ['win32-x64-msvc'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeDifferentArchNodeFiles(nodeModulesPath, packageName, arch) {
|
/**
|
||||||
|
* 使用指定架构的 node_modules 文件
|
||||||
|
* @param {*} nodeModulesPath
|
||||||
|
* @param {*} packageName
|
||||||
|
* @param {*} arch
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
function keepPackageNodeFiles(nodeModulesPath, packageName, arch) {
|
||||||
const modulePath = path.join(nodeModulesPath, packageName)
|
const modulePath = path.join(nodeModulesPath, packageName)
|
||||||
|
|
||||||
|
if (!fs.existsSync(modulePath)) {
|
||||||
|
console.log(`[After Pack] Directory does not exist: ${modulePath}`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const dirs = fs.readdirSync(modulePath)
|
const dirs = fs.readdirSync(modulePath)
|
||||||
dirs
|
dirs
|
||||||
.filter((dir) => !arch.includes(dir))
|
.filter((dir) => !arch.includes(dir))
|
||||||
.forEach((dir) => {
|
.forEach((dir) => {
|
||||||
fs.rmSync(path.join(modulePath, dir), { recursive: true, force: true })
|
fs.rmSync(path.join(modulePath, dir), { recursive: true, force: true })
|
||||||
console.log(`Removed dir: ${dir}`, arch)
|
console.log(`[After Pack] Removed dir: ${dir}`, arch)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user