提交 b5df6b7a 编写于 作者: fxy060608's avatar fxy060608 提交者: qiang

fix(push): check modules.push

上级 fb9c54b0
......@@ -105,6 +105,11 @@ export function isEnableSecureNetwork(
return manifest[platform]?.secureNetwork?.enable === true
}
export function hasPushModule(inputDir: string) {
const manifest = parseManifestJsonOnce(inputDir)
return !!manifest['app-plus']?.modules?.Push
}
export function isUniPushOffline(inputDir: string) {
const manifest = parseManifestJsonOnce(inputDir)
return (
......
......@@ -12,6 +12,7 @@ var index = () => [
let isEnableV1 = false;
let isEnableV2 = false;
let isOffline = false;
let configModulePush = false;
return {
name: 'uni:push',
enforce: 'pre',
......@@ -23,6 +24,7 @@ var index = () => [
const platform = process.env.UNI_PLATFORM;
isEnableV1 = uniCliShared.isEnableUniPushV1(inputDir, platform);
isEnableV2 = uniCliShared.isEnableUniPushV2(inputDir, platform);
configModulePush = uniCliShared.hasPushModule(inputDir);
// v1
if (isEnableV1) {
return;
......@@ -57,6 +59,14 @@ var index = () => [
if (!opts.filter(id)) {
return;
}
// 如果启用了v1,但是没有配置module.push,不需要注入
if (isEnableV1 && !configModulePush) {
return;
}
// 如果启用了v2+offline,但是没有配置module.push,不需要注入
if (isEnableV2 && isOffline && !configModulePush) {
return;
}
if (isEnableV1 || isEnableV2) {
return {
code: `import '@dcloudio/uni-push';` + code,
......
......@@ -6,6 +6,7 @@ import {
isEnableUniPushV2,
isUniPushOffline,
resolveBuiltIn,
hasPushModule,
} from '@dcloudio/uni-cli-shared'
import { ConfigEnv, UserConfig } from 'vite'
......@@ -14,6 +15,7 @@ export default () => [
let isEnableV1 = false
let isEnableV2 = false
let isOffline = false
let configModulePush = false
return {
name: 'uni:push',
enforce: 'pre',
......@@ -25,6 +27,7 @@ export default () => [
const platform = process.env.UNI_PLATFORM!
isEnableV1 = isEnableUniPushV1(inputDir, platform)
isEnableV2 = isEnableUniPushV2(inputDir, platform)
configModulePush = hasPushModule(inputDir)
// v1
if (isEnableV1) {
return
......@@ -58,6 +61,14 @@ export default () => [
if (!opts.filter(id)) {
return
}
// 如果启用了v1,但是没有配置module.push,不需要注入
if (isEnableV1 && !configModulePush) {
return
}
// 如果启用了v2+offline,但是没有配置module.push,不需要注入
if (isEnableV2 && isOffline && !configModulePush) {
return
}
if (isEnableV1 || isEnableV2) {
return {
code: `import '@dcloudio/uni-push';` + code,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册