Creator如何设置构建时的环境变量? 尤其是 NODE_ENV

有些库分为开发版和产品版两套代码
所以使用者在构建的时候需要设置环境变量

NODE_ENV=production

否则构建出的代码比较大,性能也不优

哪里可以设置啊?

cocos creator的bundler(不知道具体用的是什么,比如webpack)肯定有地方设置,但是cc没有暴露出来

一般人肯定是不知道的,急需开发团队解答……但是不知道@谁:sob:

妥妥没有
webpack设置环境变量是基于webpack的打包环境而言的
cocoscreator的打包环境又不是webpack
你就算设置了该值
打包行为也不可能生效

NODE_ENV 所在的脚本设置为插件,然后写一个脚本 在构建完成后动态切换环境

1赞

Typescript设置不了插件。。。

不可能没有,我不信有那么多现成的bundler不用,cocos creator团队要自己重新造一个的bundler

同问,请问解决了吗?
目前遇到 npm 的 mobx ,cocos build 出来后出现

index.627e2.js:1 [mobx] you are running a minified build, but 'process.env.NODE_ENV' was not set to 'production' in your bundler. This results in an unnecessarily large and slow bundle

希望有个方法在 build 传递 NODE_ENV,前端包很多使用到的

@jare
@jareguo

遇到了同样的问题,不知道 楼主 后来解决了没有?

项目代码里面可以用 cc/env 模块里面的环境变量:

模块 · Cocos Creator

因为debug绑死了调试日志的输出。如果需要打一个带调试日志输出但是API路径使用release配置的包,要怎么实现?

没法解决设置NODE_ENV,但是可以不显示这个警告,在index.html中的script脚本中加入即可

    console.warn = function (oriLogFunc) {
            return function () {
                const args = Array.prototype.slice.call(arguments);
                if(String(args).indexOf('[mobx] you are running a minified build')<0) {
                    //@ts-ignore
                    oriLogFunc.call(console, ...arguments);
                }
            }
          }(console.warn);

最好是用脚本打包,然后代码控制插入进去