diff --git a/packages/uni-cli-shared/lib/package.js b/packages/uni-cli-shared/lib/package.js index cce87153c804da22f5c331a53012f5170b3f7c2b..9bec1d1afa9f27fc6a78b34d3997c34d5a018df0 100644 --- a/packages/uni-cli-shared/lib/package.js +++ b/packages/uni-cli-shared/lib/package.js @@ -1,7 +1,14 @@ const uniI18n = require('@dcloudio/uni-cli-i18n') +function isPlainObject(a) { + if (a === null) { + return false + } + return typeof a === 'object' +} + module.exports = { - initCustomScript (name, pkgPath) { + initCustomScript(name, pkgPath) { const pkg = require(pkgPath) const uniAppOptions = pkg['uni-app'] @@ -21,6 +28,16 @@ module.exports = { process.exit(0) } + if (isPlainObject(scriptOptions.define)) { + Object.keys(uniAppOptions.scripts).forEach(scriptName => { + if (scriptName !== name) { + const define = uniAppOptions.scripts[scriptName].define + Object.keys(define).forEach(name => define[name] = false) + Object.assign(scriptOptions.define, define) + } + }) + } + process.env.UNI_PLATFORM = scriptOptions.env.UNI_PLATFORM process.env.UNI_SCRIPT = name