[英]How can I evaluate Javascript ES6 code at runtime?
我想在運行時使用Node.js執行ES6代碼。 給定一串代碼:
const es6code = 'const square = (b) => { return b * b; }';
es6Eval(es6code)(5)
es6Eval
函數將es6轉換為es5並在運行時評估代碼。
我該怎么做呢?
首先,讓我們解決這個問題:您必須信任該代碼的來源 。 您在問如何從環境中的字符串運行任意代碼。 如果該代碼是惡意的,則可能發生壞事。 因此,您必須信任代碼的來源(例如,誰將代碼提供給您)。
假設您信任從中獲取代碼的任何人:
鑒於const
在const es6code
,你在“ES6”(這是說,ES2015 +)環境中運行該代碼。 所以...
const f = new Function(es6code + "; return square;")(); // Note ----------------------^^^^^^^^^^^^^^^^^^^^^ ^^ // And --------------------------------------------/
然后
console.log(f(5)); // 25
如果需要先進行轉換,請先使用Node API for Babel轉換代碼:
var code = require("babel-core").transform(es6code, options);
...然后對結果執行#1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.