本文整理汇总了TypeScript中electron-builder/out/winPackager.WinPackager类的典型用法代码示例。如果您正苦于以下问题:TypeScript WinPackager类的具体用法?TypeScript WinPackager怎么用?TypeScript WinPackager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WinPackager类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: buildInstaller
export async function buildInstaller(options: SquirrelOptions, outputDirectory: string, setupExe: string, packager: WinPackager, appOutDir: string, outDir: string, arch: Arch) {
const appUpdate = await packager.getTempFile("Update.exe")
await BluebirdPromise.all([
copyFile(path.join(options.vendorPath, "Update.exe"), appUpdate)
.then(() => packager.sign(appUpdate)),
BluebirdPromise.all([remove(`${outputDirectory.replace(/\\/g, "/")}/*-full.nupkg`), remove(path.join(outputDirectory, "RELEASES"))])
.then(() => ensureDir(outputDirectory))
])
if (options.remoteReleases) {
await syncReleases(outputDirectory, options)
}
const embeddedArchiveFile = await packager.getTempFile("setup.zip")
const embeddedArchive = archiver("zip", {zlib: {level: options.packageCompressionLevel == null ? 6 : options.packageCompressionLevel}})
const embeddedArchiveOut = createWriteStream(embeddedArchiveFile)
const embeddedArchivePromise = new BluebirdPromise((resolve, reject) => {
embeddedArchive.on("error", reject)
embeddedArchiveOut.on("close", resolve)
})
embeddedArchive.pipe(embeddedArchiveOut)
embeddedArchive.file(appUpdate, {name: "Update.exe"})
embeddedArchive.file(options.loadingGif ? path.resolve(packager.projectDir, options.loadingGif) : path.join(options.vendorPath, "install-spinner.gif"), {name: "background.gif"})
const version = convertVersion(options.version)
const packageName = `${options.name}-${version}-full.nupkg`
const nupkgPath = path.join(outputDirectory, packageName)
const setupPath = path.join(outputDirectory, setupExe)
await BluebirdPromise.all<any>([
pack(options, appOutDir, appUpdate, nupkgPath, version, packager),
copyFile(path.join(options.vendorPath, "Setup.exe"), setupPath),
])
embeddedArchive.file(nupkgPath, {name: packageName})
const releaseEntry = await releasify(options, nupkgPath, outputDirectory, packageName)
embeddedArchive.append(releaseEntry, {name: "RELEASES"})
embeddedArchive.finalize()
await embeddedArchivePromise
await execWine(path.join(options.vendorPath, "WriteZipToSetup.exe"), [setupPath, embeddedArchiveFile])
await packager.signAndEditResources(setupPath, arch, outDir)
if (options.msi && process.platform === "win32") {
const outFile = setupExe.replace(".exe", ".msi")
await msi(options, nupkgPath, setupPath, outputDirectory, outFile)
// rcedit can only edit .exe resources
await packager.sign(path.join(outputDirectory, outFile))
}
}
示例2: copyFile
consume: async (file, stats) => {
if (stats.isDirectory()) {
return
}
// GBK file name encoding (or Non-English file name) caused a problem
const relativeSafeFilePath = encodeURI(file.substring(dir.length + 1).replace(/\\/g, "/")).replace(/%5B/g, "[").replace(/%5D/g, "]")
archive._append(file, {
name: relativeSafeFilePath,
prefix,
stats,
})
// createExecutableStubForExe
// https://github.com/Squirrel/Squirrel.Windows/pull/1051 Only generate execution stubs for the top-level executables
if (file.endsWith(".exe") && !file.includes("squirrel.exe") && !relativeSafeFilePath.includes("/")) {
const tempFile = await packager.getTempFile("stub.exe")
await copyFile(path.join(vendorPath, "StubExecutable.exe"), tempFile)
await execWine(path.join(vendorPath, "WriteZipToSetup.exe"), ["--copy-stub-resources", file, tempFile])
await packager.sign(tempFile)
archive._append(tempFile, {
name: relativeSafeFilePath.substring(0, relativeSafeFilePath.length - 4) + "_ExecutionStub.exe",
prefix,
stats: await stat(tempFile),
})
}
}
示例3: walk
await walk(dir, null, async (file, stats) => {
if (stats.isDirectory()) {
return
}
// GBK file name encoding (or Non-English file name) caused a problem
const relativeSafeFilePath = encodeURI(file.substring(dir.length + 1).replace(/\\/g, "/")).replace(/%5B/g, "[").replace(/%5D/g, "]")
archive._append(file, {
name: relativeSafeFilePath,
prefix: prefix,
stats: stats,
})
// createExecutableStubForExe
if (file.endsWith(".exe") && !file.includes("squirrel.exe")) {
const tempFile = await packager.getTempFile("stub.exe")
await copyFile(path.join(vendorPath, "StubExecutable.exe"), tempFile, null, false)
await execWine(path.join(vendorPath, "WriteZipToSetup.exe"), ["--copy-stub-resources", file, tempFile])
archive._append(tempFile, {
name: relativeSafeFilePath.substring(0, relativeSafeFilePath.length - 4) + "_ExecutionStub.exe",
prefix: prefix,
stats: await stat(tempFile),
})
}
})
示例4:
.then(() => packager.sign(appUpdate)),