如何添加一个插件到requirejs优化器,它只在构建期间运行

How to add a plugin to the requirejs r.js optimizer, that only runs during build?

本文关键字:构建 优化 运行 添加 何添加 插件 一个 requirejs      更新时间:2023-09-26

我正在尝试编写一个自定义脚本/插件,以包含在requireJS r.js优化器中(用于指纹静态文件和一个用于捆绑JSON资源)。

我还没有弄清楚的是如何在构建过程中触发我的自定义优化器。我可以很好地编写脚本,但我如何在优化期间触发bundle-build.js模块。

谢谢你的提示!

编辑:


我知道我可以使用"onBuildRead/Write",但这不是添加优化器插件的地方。像require-css这样的东西更接近,但是是一个文件前缀,它触发插件,它有一个指定在构建期间使用的pluginBuilder。这不是我想要的。

Optimizer应该拾取指定为依赖项的所有文件。如果你需要包含一些额外的东西,那么你可以使用onBuildRead或onBuildWrite回调添加额外的逻辑,在那里你可以添加/删除额外的东西:

({
    name: 'main',
    baseUrl: '../',
    // optimize: 'none',
    optimize: 'uglify2',
    exclude: ['jquery'],
    mainConfigFile: '../main.js',
    out: '../main.min.js',
    // A function that if defined will be called for every file read in the
    // build that is done to trace JS dependencies.
    // Remove references to console.log(...)
    onBuildRead: function (moduleName, path, contents) {
        return contents;
        // return contents.replace(/console.log(.*);/g, '');
    },
    onBuildWrite: function (moduleName, path, contents) {
        // Add extra stufff;
        return contents;
    }
})