JavaScript เจ†เจฌเจœเฉˆเจ•เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจฆเฉ€ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจฆเฉเจ†เจฐเจพ Node.js 'เจคเฉ‡ เจนเจฎเจฒเจพ

เจนเฉˆเจฒเจฎเจนเฉ‹เจฒเจŸเจœเจผ เจธเฉˆเจ‚เจŸเจฐ เจซเจพเจฐ เจ‡เจจเจซเจฐเจฎเฉ‡เจธเจผเจจ เจธเจ•เจฟเจ“เจฐเจฟเจŸเฉ€ (เจธเฉ€เจ†เจˆเจเจธเจชเฉ€เจ) เจ…เจคเฉ‡ เจฐเจพเจ‡เจฒ เจ‡เฉฐเจธเจŸเฉ€เจšเจฟเจŠเจŸ เจ†เจซเจผ เจŸเฉˆเจ•เจจเจพเจฒเฉ‹เจœเฉ€ (เจธเจตเฉ€เจกเจจ) เจฆเฉ‡ เจ–เฉ‹เจœเจ•เจฐเจคเจพเจตเจพเจ‚ เจจเฉ‡ Node.js เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจชเฉเจฐเจธเจฟเฉฑเจง เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจนเจฎเจฒเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ JavaScript เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจชเฉเจฐเจฆเฉ‚เจธเจผเจฃ เจคเจ•เจจเฉ€เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เฉ€เจคเจพ, เจœเจฟเจธ เจจเจพเจฒ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจนเฉ‹เจ‡เจ†เฅค

เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจชเฉเจฐเจฆเฉ‚เจธเจผเจฃ เจ•เจฐเจจ เจตเจพเจฒเฉ€ เจตเจฟเจงเฉ€ JavaScript เจญเจพเจธเจผเจพ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจตเจธเจคเฉ‚ เจฆเฉ‡ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจฟเฉฑเจš เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฌเจฒเจพเจ• (เจ—เฉˆเจœเฉ‡เจŸเจธ) เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจฆเจพ เจธเฉฐเจšเจพเจฒเจจ เจ‡เฉฑเจ• เจฌเจฆเจฒเฉ€ เจ—เจˆ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจญเจพเจตเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ; เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เฉ‹เจก เจตเจฟเฉฑเจš 'const cmd = options.cmd || "/bin/sh"', เจœเจฟเจธเจฆเจพ เจคเจฐเจ• เจฌเจฆเจฒเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจนเจฎเจฒเจพเจตเจฐ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจฟเฉฑเจš "cmd" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจง เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจธเจซเจฒ เจนเจฎเจฒเฉ‡ เจฒเจˆ เจ‡เจน เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ‡ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจฌเจพเจนเจฐเฉ€ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจ‡เฉฑเจ• เจ—เฉˆเจœเฉ‡เจŸ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเฉฐเจธเจผเฉ‹เจงเจฟเจค เจธเฉฐเจชเจคเฉ€ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ Node.js เจตเจฟเฉฑเจš โ€œ__proto__โ€ เจ…เจคเฉ‡ โ€œconstructorโ€ เจธเฉ‡เจตเจพ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจ•เจฐเจ•เฉ‡ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค "__proto__" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ€ เจ•เจฒเจพเจธ เจฆเจพ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจพเจชเจธ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ "เจ•เจจเจธเจŸเจฐเจ•เจŸเจฐ" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเฉ‡ เจ—เจ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ…เจธเจพเจˆเจจเจฎเฉˆเจ‚เจŸ "obj[a][b] = value" เจนเฉˆ เจ…เจคเฉ‡ เจฎเฉเฉฑเจฒ เจฌเจพเจนเจฐเฉ€ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจนเจฎเจฒเจพเจตเจฐ "a" เจจเฉ‚เฉฐ เจฎเฉเฉฑเจฒ "__proto__" เจตเจฟเฉฑเจš เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจธเฉฐเจชเจคเฉ€ เจฆเฉ€ เจธเจฅเจพเจชเจจเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ‡ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช (obj.__proto__.b = value;) เจตเจฟเฉฑเจš เจจเจพเจฎ "b" เจ…เจคเฉ‡ เจฎเฉเฉฑเจฒ "เจฎเฉเฉฑเจฒ" เจฆเฉ‡ เจจเจพเจฒ, เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจฟเฉฑเจš เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจธเจคเฉ‚เจ†เจ‚ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚, เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจก เจตเจฟเฉฑเจš "obj[a][b][c] = value" เจตเจฐเจ—เฉ‡ เจธเจฎเฉ€เจ•เจฐเจจ เจธเจผเจพเจฎเจฒ เจนเจจ, เจคเจพเจ‚ "a" เจจเฉ‚เฉฐ "constructor" เจฎเฉเฉฑเจฒ เจ…เจคเฉ‡ "b" เจจเฉ‚เฉฐ "เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช" เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจตเจธเจคเฉ‚เจ†เจ‚ เจตเจฟเฉฑเจš เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡, เจคเฉเจธเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ "c" เจจเจพเจฎ เจ…เจคเฉ‡ เจฎเฉเฉฑเจฒ "เจฎเฉเฉฑเจฒ" เจจเจพเจฒ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเฉ‹เฅค

เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ: const o1 = {}; const o2 = เจจเจตเฉ€เจ‚ เจตเจธเจคเฉ‚(); o1.__proto__.x = 42; // เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช console.log (o2.x) เจตเจฟเฉฑเจš เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ "x" เจฌเจฃเจพเจ“; // เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจ†เจฌเจœเฉˆเจ•เจŸ เจคเฉ‹เจ‚ เจเจ•เจธเฉˆเจธ เจชเฉเจฐเจพเจชเจฐเจŸเฉ€ "x" // เจ†เจ‰เจŸเจชเฉเฉฑเจŸ 42 เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจจเฉ‚เฉฐ เจ†เจฌเจœเฉˆเจ•เจŸ o1 เจฆเฉเจ†เจฐเจพ เจฌเจฆเจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจ†เจฌเจœเฉˆเจ•เจŸ o2 เจตเจฟเฉฑเจš เจตเฉ€ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ•เจฎเจœเจผเฉ‹เจฐ เจ•เฉ‹เจก เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ: เจซเฉฐเจ•เจธเจผเจจ เจเจ‚เจŸเจฐเฉ€เจชเฉเจ†เจ‡เฉฐเจŸ (arg1, arg2, arg3){ const obj = {}; const p = obj[arg1]; p[arg2] = arg3; เจตเจพเจชเจธเฉ€ p; }

เจœเฉ‡เจ•เจฐ entryPoint เจซเฉฐเจ•เจธเจผเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจ‡เจจเจชเฉเจŸ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจฌเจฃเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจนเจฎเจฒเจพเจตเจฐ "__proto__" เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ arg1 เจตเจฟเฉฑเจš เจชเจพเจธ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจตเฉ€ เจจเจพเจฎ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฌเจฃเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ arg2 เจจเฉ‚เฉฐ "toString" เจฎเฉเฉฑเจฒ เจ…เจคเฉ‡ arg3 เจฎเฉเฉฑเจฒ 1 เจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ "toString" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ (Object.prototype.toString=1) เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ toString() เจจเฉ‚เฉฐ เจ•เจพเจฒ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจฐเฉˆเจธเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจฆเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจœเฉ‹ เจนเจฎเจฒเจพเจตเจฐ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจตเฉฑเจฒ เจฒเฉˆ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ, เจตเจฟเฉฑเจš "เจฎเฉเฉฑเจ–", "เจธเจผเฉˆเฉฑเจฒ", "เจเจ•เจธเจชเฉ‹เจฐเจŸ", "เจชเฉเจฐเจธเฉฐเจ— เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ" เจ…เจคเฉ‡ "env" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจฐเจšเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจนเจฎเจฒเจพเจตเจฐ เจ‡เฉฑเจ• เจตเจธเจคเฉ‚ เจฆเฉ‡ เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• "เจฎเฉเฉฑเจ–" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฌเจฃเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธ เจตเจฟเฉฑเจš เจ‰เจธเจฆเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเจพ เจฎเจพเจฐเจ— เจฒเจฟเจ– เจธเจ•เจฆเจพ เจนเฉˆ (Object.prototype.main = โ€œ./../../pwned.jsโ€) เจ…เจคเฉ‡ เจ‡เจธ เจธเฉฐเจชเฉฑเจคเฉ€ เจจเฉ‚เฉฐ เจ•เฉฐเจธเจŸเฉเจฐเจ•เจธเจผเจจ เจฆเฉ€ เจฒเฉ‹เฉœ ("my-package") เจฆเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพ, เจœเฉ‡เจ•เจฐ เจธเจผเจพเจฎเจฒ เจชเฉˆเจ•เฉ‡เจœ เจชเฉˆเจ•เฉ‡เจœ.json เจตเจฟเฉฑเจš "เจฎเฉเฉฑเจ–" เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ (เจœเฉ‡ เจธเฉฐเจชเฉฑเจคเฉ€ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจน เจฐเฉ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ)เฅค โ€œเจธเจผเฉˆเฉฑเจฒโ€, โ€œเจเจ•เจธเจชเฉ‹เจฐเจŸโ€ เจ…เจคเฉ‡ โ€œenvโ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจฐเฉ‚เจŸเจชเฉเจฐเฉ‹เจŸเฉ‹ = Object.prototype; rootProto["exports"] = {".":"/changelog.js"}; rootProto["1"] = "/path/to/npm/scripts/"; // เจŸเจฐเจฟเฉฑเจ—เจฐ เจ•เจพเจฒ เจฆเฉ€ เจฒเฉ‹เฉœ (."/target.js"); Object.prototype.main = "/path/to/npm/scripts/changelog.js"; Object.prototype.shell = "เจจเฉ‹เจก"; Object.prototype.env = {}; Object.prototype.env.NODE_OPTIONS = "-inspect-brk=0.0.0.0:1337"; // เจŸเจฐเจฟเฉฑเจ—เจฐ เจ•เจพเจฒ เจฆเฉ€ เจฒเฉ‹เฉœ ("เจฌเจพเจˆเจŸเจธ");

เจ–เฉ‹เจœเจ•เจฐเจคเจพเจตเจพเจ‚ เจจเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจพเจฒเฉ‡ 10 NPM เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจชเจพเจ‡เจ† เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ 1958 เจ•เฉ‹เจฒ package.json เจตเจฟเฉฑเจš เจฎเฉเฉฑเจ– เจธเฉฐเจชเจคเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, 4420 เจ†เจชเจฃเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจฌเจฟเจ†เจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฎเจพเจฐเจ—เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ 355 เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฎเจพเจ‚เจก เจฌเจฆเจฒ API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจ‰เจฆเจพเจนเจฐเจจ เจชเจพเจฐเจธ เจธเจฐเจตเจฐ เจฌเฉˆเจ•เจเจ‚เจก 'เจคเฉ‡ เจนเจฎเจฒเจพ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจผเฉ‹เจธเจผเจฃ เจนเฉˆ เจœเฉ‹ evalFunctions เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ‡เฉฑเจ• เจŸเฉ‚เจฒเจ•เจฟเฉฑเจŸ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ เจœเฉ‹ เจธเจฅเจฟเจฐ เจ…เจคเฉ‡ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจตเจฟเจงเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเฉ€ เจนเฉˆเฅค Node.js เจฆเฉ€ เจœเจพเจ‚เจš เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, 11 เจ—เฉˆเจœเฉ‡เจŸเจธ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€ เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจนเจฎเจฒเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ เจœเฉ‹ เจนเจฎเจฒเจพเจตเจฐ เจฆเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ…เจ—เจตเจพเจˆ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจชเจพเจฐเจธ เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, NPM CLI เจตเจฟเฉฑเจš เจฆเฉ‹ เจธเจผเฉ‹เจธเจผเจฃเจฏเฉ‹เจ— เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเฉ€ เจชเจ›เจพเจฃ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹