请教大家一个关于环境配置的问题

请教个问题,在creator中,如果我不同的环境(开发,生产)有一些不同的参数(比如服务器地址),这些配置有没有好的lib来管理,打包时候,不同环境打入不同的参数

为什么沉下去了呢?
同问,请问楼主现在是如何解决的呢?

Creator 中的参数可以帮助你设置这些参数,比如:

window.config = {};
// debug 环境下
if (CC_DEBUG) {
    config.debugSetting = ...
}
// release 环境
else {
    config.xxx = ...
}

保存脚本时,ccc编译出错,并没有这个变量 :frowning:
ReferenceError: CC_DEBUG is not defined

目前没有 CC_DEBUG @panda 只有一个 CC_DEV,不过这个宏的值是等于 CC_EDITOR or CC_TEST

以后我们可能会添加 CC_DEBUG, 至于时间具体要问 @jare

目前 CC_DEV 在编辑器或预览时会为 true。使用 CC_DEV 来标识生产环境的话,满足大部分需求但是构建版本是否 debug mode 无法以此区分。

如果这样修改好吗?
构建版本的 debug 模式下,同样使 CC_DEV 为 true
增加 CC_BUILD 和 CC_PREVIEW,用来表示构建版和预览版

这样一来,代表不同平台的宏一共如下
编辑器: CC_EDITOR
预览:CC_PREVIEW
构建调试:CC_BUILD && CC_DEV
构建发行:CC_BUILD && !CC_DEV
编辑器 + 预览:CC_EDITOR || CC_PREVIEW
编辑器 + 预览 + 构建调试:CC_DEV

1赞

嗯,可以,基本满足需求,
请问什么时候添加呢?

我们内部定案后添加

为什么我测试着creator1.4.1 CC_DEV在编辑器时候是true,在启动模拟器时候是false, CC_BUILD、CC_PREVIEW不存在, CC_EDITOR和CC_DEV一样

CC_BUILD、CC_PREVIEW 又还没做,有做的话这里会更新的

看上面回复的,我以为已经做了,那为什么CC_DEV在编辑器时候是true,在启动模拟器时候是false啊?

这是内部实现上的 bug

这个功能是还没实现吗?
@jare
这些是构建后的代码

    var n="undefined"==typeof window?global:window;
    function r(t,e){
        void 0===n[t]&&(n[t]=e)
    }
    function o(t){
        return"object"==typeof n[t]
    }
    r("CC_TEST",o("tap")||o("QUnit")),
    r("CC_EDITOR",o("Editor")&&o("process")&&"electron"in process.versions),
    r("CC_PREVIEW",!0),
    r("CC_DEV",!0),
    r("CC_DEBUG",!0),
    r("CC_JSB",o("jsb")),
    r("CC_BUILD",!1),
    r("CC_WECHATGAME",o("wx")&&wx.getSystemInfoSync),
    r("CC_QQPLAY",o("bk")),
    r("CC_SUPPORT_JIT",!0);
    n.CocosEngine=cc.ENGINE_VERSION="1.10.0-rc.1"}),{}]},{},[226]);