uni-app 钉钉小程序 配置了package.json后 条件编译MP-DINGTALK无效

uni-app 钉钉小程序 配置了package.json后 条件编译MP-DINGTALK无效

示例代码:

{    
    "uni-app": {    
        "scripts": {    
            "mp-dingtalk": {    
                "title": "钉钉小程序",    
                "env": {    
                    "UNI_PLATFORM": "mp-alipay"    
                },    
                "define": {    
                    "MP-DINGTALK": true    
                }    
            }    
        }    
    },    
    "dependencies": {    
        "uview-ui": "^1.8.8"    
    }    
}
<view>    
    <!-- #ifdef MP-WEIXIN -->    
        微信小程序    
    <!-- #endif -->    
    <!-- #ifdef MP-DINGTALK -->    
        钉钉小程序    
    <!-- #endif -->    
</view>

操作步骤:

  • 上传了附件,可以运行看一下

预期结果:

  • 希望下图条件编译能在钉钉小程序显示
<!-- #ifdef MP-DINGTALK -->    
    钉钉小程序    
<!-- #endif -->  

实际结果:

  • 钉钉小程序未显示条件编译内容

bug描述:

钉钉小程序 配置了package.json ,条件编译MP-DINGTALK 无效

<view>    
    <!-- #ifdef MP-WEIXIN -->    
        微信小程序    
    <!-- #endif -->    
    <!-- #ifdef MP-DINGTALK -->    
        钉钉小程序    
    <!-- #endif -->    
</view>

下载附件

项目信息 详情
产品分类 uniapp/小程序
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 10.0.19041.985
HBuilderX类型 正式
HBuilderX版本号 3.99
第三方开发者工具版本号 3.8.11
基础库版本号 1.25.10
项目创建方式 HBuilderX
6 回复

你的demo是正常的呀,看我发的截图


这个demo在我电脑开发者工具运行不正常

我切换为钉钉小程序之后也是正常显示,我排查一下吧

排查出来了,正式版确实存在这个问题,新版本alpha已修复,用新版的即可

uni-app 中,条件编译是一种非常实用的功能,可以根据不同的平台或环境编译不同的代码。如果你在配置了 package.json 后,发现条件编译 MP-DINGTALK 无效,可能是以下几个原因导致的:

1. package.json 配置不正确

确保你的 package.json 文件中正确配置了 uni-app 的相关设置。例如,钉钉小程序的配置应该如下:

{
  "uni-app": {
    "scripts": {
      "mp-dingtalk": {
        "title": "钉钉小程序",
        "env": {
          "UNI_PLATFORM": "mp-dingtalk"
        }
      }
    }
  }
}

2. 条件编译语法错误

确保你在代码中使用了正确的条件编译语法。例如:

// #ifdef MP-DINGTALK
console.log('This is DingTalk Mini Program');
// #endif

3. 编译时未指定平台

在编译时,确保你指定了正确的平台。例如,使用以下命令编译钉钉小程序:

npm run dev:mp-dingtalk

npm run build:mp-dingtalk

4. uni-app 版本问题

确保你使用的 uni-app 版本支持钉钉小程序的条件编译。如果版本过旧,可能会导致某些功能无法正常使用。可以通过以下命令检查 uni-app 版本:

npm list @dcloudio/uni-app

如果需要更新 uni-app,可以使用以下命令:

npm update @dcloudio/uni-app

5. 检查 manifest.json 配置

manifest.json 中,确保你已经正确配置了钉钉小程序的相关设置。例如:

{
  "mp-dingtalk": {
    "appid": "your-appid",
    "setting": {
      "urlCheck": false,
      "es6": true,
      "postcss": true,
      "minified": true
    }
  }
}

6. 检查项目结构

确保你的项目结构符合 uni-app 的要求,尤其是 pages.jsonmanifest.json 等文件的配置是否正确。

7. 清除缓存并重新编译

有时候,缓存可能会导致编译结果不符合预期。你可以尝试清除缓存并重新编译:

npm run clean
npm run dev:mp-dingtalk

8. 检查编译日志

查看编译日志,看看是否有任何错误或警告信息,这些信息可能会帮助你找到问题的根源。

9. 确认 MP-DINGTALK 是否被正确识别

在代码中输出 process.env.UNI_PLATFORM,看看是否正确识别为 mp-dingtalk

console.log(process.env.UNI_PLATFORM);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!