嗯,我想我想要的有点高级,让我解释一下:
例如,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应该是完整的。
答案 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