自定义宏无法使用

  • Creator 版本: 3.6.3

  • 目标平台: Chrome

  • 重现方式:直接报错提示未定义【预览和打包都会出错】

image
image

这个是还有什么操作吗?

定义之后请从 ‘cc/userland/macro’ 模块导入这个宏哈

import { REPORT_SS } from ‘cc/userland/macro’

3赞

求问,宏如何使用

这个自定义宏配置,其实是用于代码裁剪的,比如,我在面板中添加:
Screenshot 2023-10-27 at 14.25.47

ts 代码中就可以是用这个宏:

import { CJH_HAHAHA, CJH_WUWUWU } from 'cc/userland/macro';

...

        if (CJH_HAHAHA) {
            console.log(`Enable CJH_HAHAHA`);
        } else {
            console.log(`Disable CJH_HAHAHA`);
        }

        if (CJH_WUWUWU) {
            console.log(`Enable CJH_WUWUWU`);
        } else {
            console.log(`Disable CJH_WUWUWU`);
        }

最终构建出来的脚本会根据这个宏的值去剔除代码,构建结果如下:

          {
            console.log("Enable CJH_HAHAHA");
          }
          {
            console.log("Disable CJH_WUWUWU");
          }

是的,比如我这边的一个场景,我们集成了几家sdk,但并不是每个游戏都要用,每个sdk的代码又比较多,所以可以同宏来处理需要集成哪些sdk~

自己做一个宏文件吧,没必要用引擎的,打包不能通过命令行改
image

1赞

为什么不能通过命令行改?
image
我的都是通过配置,然后修改的

还不是自己写的,我说的默认命令行。 :rofl:
image

我真的~这跟写在命令行有区别吗?我只是让别人好配置点而已,总不至于打包的时候,让别人提交一条命令行吧

区别大了。我们都是几个平台搞,本来一个命令行搞定的事情,现在不得不多做些操作,还有ci也需要

1赞

我这不就是告诉你可以用命令行吗?命令行加的参数和配置参数只是读取的方式不一样,实现不还是一样的。
image
谁还不是CI的~

另外,从你的代码来看,你的宏并不能剔除代码吧,当然也许核心代码你没有写出来~

对啊。我意思是官方没支持啊,我是自己都不想写啊

请问自定义宏使用时,如何做到多个ts文件的全部代码裁剪呢,我发现写在 export class XX的外层时,vscode会在代码 export 文本上提示错误“Modifiers cannot appear here.”

请问如何在构建时修改自定义宏参数

我这边用插件处理的

请问如何处理的,我本来想再 onBuildBefore里设置options的参数,但是发现没用。我现在想法是在 onBuildBefore 里 Editor.Message.send(“project”, “engine”, …) 但是这样会修改原本设置 ,有没有更好的方法

目前都是基本都是这干的,只是在编译完以后恢复下

如果是命令行构建的话,在导出的构建配置的那个 json 文件里添加 macroConfig 字段就行了

终于有人说官方解法了

如果是在构建面板里构建,可以修改 macroConfig 吗,在 onBuildBefore 里设置没有效果