重构用户脚本以使用 javascript 模块

for*_*ash 6 javascript module userscripts node.js requirejs

我正在开发一个用户脚本 - 特别是这个用户脚本- 其设计目的是将功能封装在模块中。为了能够进行一些自动化测试,我想将模块拆分为自己的文件,并使用 node.js 的模块导出和 require 函数合并到一个文件中,以便在 Greasemonkey 或简单的浏览器扩展中使用。

我的第一个想法是将模块复制到它们自己的文件中

模块.js

var exportedModule = (function (){  
    var Module = {  
        // public functions and members  
    };  

    //private functions and members  

    return Module;  
}());  

module.exports = exports = exportedModule;  
Run Code Online (Sandbox Code Playgroud)

然后有一个需要每个模块的中央文件,也许可以使用Browserify之类的东西来编译它们。

脚本.js

var importedModule = require(./module);

importedModule.init();
Run Code Online (Sandbox Code Playgroud)

这可能吗?

And*_*erg 3

在我看来,你最好使用Requirejs,它使用 AMD 风格的模块,并且本质上对浏览器更友好。Node commonjs 风格的模块是同步的,不太适合浏览器模型。

当然,使用 requirejs 会稍微改变你的脚本。