Browserify转换插件用于评估IIFE并在捆绑期间替换其结果

时间:2018-05-08 17:57:56

标签: javascript node.js browserify

嗯,我想我想要的有点高级,让我解释一下:

例如,brfs转换插件将对fs.readFileSync的每次调用替换为目标文件的实际内容。它在browserify捆绑过程中被替换。

我正在寻找类似的东西,但我没有替换对本机函数的调用,而是希望它通过节点上下文运行一些IIFE并将其代码内联替换为其结果。

示例:

let slideList = (
    function thatWillBeRunIntoBrowserify(){ 
        return fs.readdirSync(__dirname); //__dirname, in this context, is the directory of this file, ie: the file where this code is written.
    })();
let anotherExample = (function thatAlsoWillBeRunIntoBrowserify(){ return Math.PI * 20 * 20; })();

在捆绑之前,我希望它转变为:

let slideList = ["frontpage.svg", "preface.svg", "credits.svg", "other files into the folder..."];
let anotherExample = 1256.6370614359173;

是否有任何变换插件可以执行此操作,或类似的东西?

编辑:上述代码是更多代码的一部分,它在Node.js模块中返回一个函数,在这个函数中,将会有我想要的IIFE运行到将在browserify捆绑期间运行的客户端(浏览器)和IIFE。 prepack.io有一个第三方Browserify模块(预包装),但是,据我测试,它实际上与整个代码混淆。整个代码,但具体的IIFE应该是完整的。

1 个答案:

答案 0 :(得分:1)

您可以使用预包装

将转向:

let anotherExample = (function thatAlsoWillBeRunIntoBrowserify(){ return Math.PI * 20 * 20; })();

或只是

let anotherExample = Math.PI * 20 * 20;

let anotherExample = 1256.6370614359173;

在此处尝试:https://prepack.io/repl.html#OYGw9gRghiB0UDswBcAWBTATgUQB5QFsAHEdAAgF4yyBZKNWABQEkyAqMgJgAZ2vuA3EA