2025年 cocosCreator 1.8 定制 JavaScript 引擎

参考文档:https://docs.cocos.com/creator/1.9/manual/zh/advanced-topics/engine-customization.html
PS: 1.8的文档已经没了,只能看1.9的,所幸这两个版本差别不大

获取 JS 引擎

原文中github上的分支已经找不到了,这里直接从creator里复制一份出来,在里边做修改。

mac路径:/Applications/CocosCreator.app/Contents/Resources/engine

把这个拷贝出来,然后初始化为git本地仓库(这一步主要是方便查看后边要做的代码变更)。

然后在编辑器中设置使用新的代码路径:
在这里插入图片描述

构建发布

在构建项目时会根据设置来对engine/中的引擎源码进行裁剪、编译(这里我遇到一个问题,就是没有修改源码,重新编出的minijs文件有时会发生变化,表现为勾选md5 cahce 后会发现md5不一致,把两个文件对比发现(由于minjs是单行文本,用正则表达式处理一下再比会好看一些 ,(\d+):\[\(function\( >> ,\n$1:[(function( )两份minijs文件中,有一份代码把几个局部变量展开到表达式中,这里可能是压缩工具的问题,虽然没啥大的影响,但以后可能会成为一个暗坑),裁剪过的引擎会缓存在engine/bin/.cache/目录下,在之后的构建中如果模块设置没有变更会优先使用cache中的引擎。

#展开的情况说明
var i="test";
if (i==a)...

变成了:

if ("test"==a)...

PS:后续修改源码后发布,如果不生效 可以试着删除一下 engine/bin。

插曲

注意这里设置引擎是creator级别的,并不能说我A项目使用内置的,B项目使用自定义的,而我这边就有这个需求。后边的方案是:编辑器还是使用默认的,engine修改后 手动导出minijs,在项目B构建后,使用脚本把minijs替换掉,下边是手动编译的步骤:

安装手动编译的依赖

由于这个是cocosCreator很久之前的版本,有很多软件包的版本已经不兼容了,所以要安装旧版本的node和gulp。根目录下 的 package.json 中可以查到 "gulp": "^3.9.1",。然后网上搜一下node 8.17.0 与这个版本的gulp兼容。所以先安装node 8.17.0,这里有安装多个版本的 nodejs 的教程。
node 安装之后再执行:

# 安装 gulp 构建工具
npm install gulp@3.9.1 -g
# 在命令行中进入引擎路径
npm install

进行修改然后编译

新增gulp任务:

# 第三个参数 [] 里控制引擎裁剪的
# 插入第四个参数 这里要定义一些宏 ['jsb', 'wechatgame', 'debug']; 根据需要进行配置
gulp.task('build-wechatgame-min', function (done) {
    Engine.buildCocosJsMin('./index.js', './bin/cocos2d-js-min.js', [], {wechatgame:true}, done);
});

./index.js 里的宏 也许要根据平台修改一下:
在这里插入图片描述

接下来定制引擎修改了,修改之后请在命令行中执行:

# 在命令行中进入引擎路径
gulp build-wechatgame-min

新编译的代码会在bin目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值