定制项目构建流程

    结构类似:

    扩展构建流程

    要扩展构建流程,需要在扩展包中实现。如果你对扩展包还不了解,可参考 来快速创建一个扩展包。

    1. // main.js
    2. var path = require('path');
    3. var fs = require('fs');
    4. function onBeforeBuildFinish (options, callback) {
    5. var mainJsPath = path.join(options.dest, 'main.js'); // 获取发布目录下的 main.js 所在路径
    6. var script = fs.readFileSync(mainJsPath, 'utf8'); // 读取构建好的 main.js
    7. script += '\n' + 'window.myID = "01234567";'; // 添加一点脚本到
    8. fs.writeFileSync(mainJsPath, script); // 保存 main.js
    9. callback();
    10. }
    11. load () {
    12. Editor.Builder.on('before-change-files', onBeforeBuildFinish);
    13. },
    14. unload () {
    15. Editor.Builder.removeListener('before-change-files', onBeforeBuildFinish);
    16. }

    上面注册的事件是 'before-change-files',这个事件会在构建结束之前触发,此时除了计算文件 MD5、原生平台的加密脚本以外,大部分构建操作都已执行完毕。你可以在这个事件中对已经构建好的文件做进一步处理。

    此外,你可以监听的事件还有 和 'build-finished',分别对应的触发时机是构建开始和完全结束,它们的用法也是一样的,这里不再赘述。