Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions packages/hap-packager/src/plugins/zip-plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -290,12 +290,11 @@ function ZipPlugin(options) {
ZipPlugin.prototype.apply = function (compiler) {
const options = this.options

let subpackageOptions = []
if (!options.disableSubpackages && options.subpackages && options.subpackages.length > 0) {
subpackageOptions = options.subpackages
}

compiler.hooks.done.tapAsync('ZipPlugin', async (stats, callback) => {
let subpackageOptions = []
if (!options.disableSubpackages && options.subpackages && options.subpackages.length > 0) {
subpackageOptions = [...options.subpackages]
}
// 更新 options 里的值,防止改变 manifest 文件字段导致的问题
let manifestPath
if (fs.pathExistsSync(path.join(options.pathSrc, 'manifest-phone.json'))) {
Expand All @@ -304,6 +303,8 @@ ZipPlugin.prototype.apply = function (compiler) {
} else {
manifestPath = path.join(options.pathSrc, 'manifest.json')
}

let isPureWidgetProject = true
if (fs.pathExistsSync(manifestPath)) {
const manifestContent = fs.readFileSync(manifestPath, 'utf8')
const manifest = JSON.parse(manifestContent)
Expand All @@ -323,6 +324,9 @@ ZipPlugin.prototype.apply = function (compiler) {
})
})
}
if (Object.keys(manifest?.router?.pages || {}).length > 0) {
isPureWidgetProject = false
}
}

try {
Expand Down Expand Up @@ -397,7 +401,7 @@ ZipPlugin.prototype.apply = function (compiler) {
this.signConfig,
options.disableStreamPack,
compiler.watchMode,
!options.disableSubpackages && options.subpackages && options.subpackages.length > 0
!options.disableSubpackages && !isPureWidgetProject
)

fs.ensureDirSync(options.output)
Expand Down
14 changes: 4 additions & 10 deletions packages/hap-packager/src/process/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,19 +121,13 @@ async function buildProjectAndOutput(
signConfig,
disableStreamPack,
watchMode,
isAppSubpackage
needFullPackage
) {
// 如果是watch模式,走快速编译的模式
if (watchMode) {
return buildDebugModeProjectAndOutput.apply(null, arguments)
}

// 如果不是快应用分包,则移除第一个 base 包
// 只有快应用分包才需要base包,卡片分包不需要 —— update: 卡片需要保留base包,调试器处理rpks时需要读取
// if (!isAppSubpackage && subPackages) {
// subPackages.shift()
// }

// Step1. 生成整包rpk
let fullPackageBuffer = await createZipBufferForPackage(fullPackage)

Expand Down Expand Up @@ -165,9 +159,9 @@ async function buildProjectAndOutput(

if (subPackageBuffers.length) {
const rpksFileList = []
if (isAppSubpackage) {
// 只有快应用分包才需要保留整包(历史遗留保持现状)
// 卡片分包不需要保留
if (needFullPackage) {
// 非纯卡片工程rpks包里面需要保留整包
// 纯卡片工程rpks包里面不需要保留整包
rpksFileList.push({
path: fullPackage.fileName,
content: fullPackageBuffer
Expand Down