From 3f9d86bad7dbb7eff7fb6c880dd11190ebfdc645 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Mon, 8 Aug 2022 11:58:30 +0800 Subject: [PATCH] fix(mp): recursive merge platform options --- .../lib/platforms/mp.js | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/webpack-uni-pages-loader/lib/platforms/mp.js b/packages/webpack-uni-pages-loader/lib/platforms/mp.js index b47e4cae0..6a2250d11 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/mp.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/mp.js @@ -1,5 +1,6 @@ const fs = require('fs') const path = require('path') +const merge = require('merge') const { parsePages, @@ -30,6 +31,21 @@ function defaultCopy (name, value, json) { json[name] = value } +function isPlainObject (a) { + if (a === null) { + return false + } + return typeof a === 'object' +} + +function deepCopy (name, value, json) { + if (isPlainObject(value) && isPlainObject(json[name])) { + json[name] = merge.recursive(true, json[name], value) + } else { + defaultCopy(name, value, json) + } +} + const pagesJson2AppJson = { globalStyle: function (name, value, json) { json.window = parseStyle(value) @@ -115,7 +131,7 @@ const manifestJson2ProjectJson = { const platformJson2ProjectJson = { appid: defaultCopy, - setting: defaultCopy, + setting: deepCopy, miniprogramRoot: defaultCopy, cloudfunctionRoot: defaultCopy, qcloudRoot: defaultCopy, @@ -123,9 +139,9 @@ const platformJson2ProjectJson = { compileType: defaultCopy, libVersion: defaultCopy, projectname: defaultCopy, - packOptions: defaultCopy, - debugOptions: defaultCopy, - scripts: defaultCopy, + packOptions: deepCopy, + debugOptions: deepCopy, + scripts: deepCopy, cloudbaseRoot: defaultCopy } -- GitLab