Node.js 13.2.0 рдЕрдкрдиреЗ рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЬреНрдЮрд╛рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП ECMAScript рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ --experimental-modules
рдзреНрд╡рдЬ рдХреЗ рдкреАрдЫреЗ рдереА, рдЬрд┐рд╕рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрднреА рднреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИред
рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдФрд░ рдЕрдм рдЭрдВрдбреЗ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкреИрд░рд░реНрд╕ рдХреЗ рдмрд┐рдирд╛ рдиреЛрдбреНрд╕ рдореЗрдВ рднреАред
рд╕рдХреНрд░рд┐рдпрдг
Node.js рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛:
.mjs
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ.js
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдореВрд▓ package.json
рдЙрдирдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм "type": "module"
рдорд╛рди рд╣реЛ- рдХреЛрдб
тАФ-input-type=module
рдХреЗ рд╕рд╛рде тАФ-eval
рдпрд╛ STDIN рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛
рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреЛрдб рдХреЛ рдХреЙрдордирдЬреЗрдПрд╕ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ "type": "module"
рдмрд┐рдирд╛ .js
рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ "type": "module"
рдирд┐рдХрдЯрддрдо package.json
рдореЗрдВ "type": "module"
--input-type
рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХреЛрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ --input-type
ред рдпрд╣ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рдХреЙрдордирдЬрд╕ рдФрд░ рдИрдПрд╕, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред
рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреЙрдордирдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
.cjs
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ- рдПрдХреНрд╕рдЯреЗрдВрд╢рди
.js
рдпрд╛ рдмрд┐рдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдирд┐рдХрдЯрддрдо рдкреИрд░реЗрдВрдЯ "type": "тАЬcommonjsтАЭ"
- рдХреЛрдб рдХреЛ рд╕реНрдкрд╖реНрдЯ рдзреНрд╡рдЬ
--input-type=commonjs
рд╕рд╛рде --eval
рдпрд╛ STDIN рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, "рдкреИрдХреЗрдЬ рд╕реНрдХреЛрдк рдФрд░ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди" рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЕрдиреБрднрд╛рдЧ рдФрд░ --input-type
рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд
рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЖрдк рдЕрдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП, import
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд╕рд╛рдкреЗрдХреНрд╖ URL:
"./file.mjs"
- рдкреВрд░реНрдг URL c
file://
, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "file:///opt/app/file.mjs"
- рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо:
"es-module-package"
- рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде:
"es-module-package/lib/file.mjs"
рдЖрдпрд╛рддреЛрдВ рдореЗрдВ, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ ( import _ from "es-module-package"
) рдФрд░ рдирд╛рдорд┐рдд рдорд╛рди ( import { shuffle } from "es-module-package"
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди ( import * as fs from "fs"
) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред import * as fs from "fs"
)ред рд╕рднреА рдмрд┐рд▓реНрдЯ-рдЗрди Node.js рдкреИрдХреЗрдЬ, рдЬреИрд╕реЗ fs
рдпрд╛ path
, рд╕рднреА рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдпрд╛рддреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рдРрд╕реЗ module.exports
рдХреЛрдб рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рд╕рднреА рдореМрдЬреВрджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдХрд┐ require
рдФрд░ module.exports
require
Node.js рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ) рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк ( import _ from "commonjs-package"
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
JSON рдФрд░ WASM рдЬреИрд╕реЗ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд╢рдГ --experimental-wasm-modules
--experimental-json-modules
рдФрд░ --experimental-wasm-modules
--experimental-json-modules
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ module.createRequire
. module.createRequire
API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЕрдкрдиреЗ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдФрд░ рдирд╛рдорд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
import()
рд╕рд╛рде рдЧрддрд┐рд╢реАрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рддреЛ рдХреЙрдорди рдЬреЗрдПрд╕рдПрд╕ рдпрд╛ рдИрдПрд╕ рдХреЛрдб рд╕реЗ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ import()
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╡рд╛рджрд╛ (рд╡рд╛рджрд╛)ред
import.meta.url
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ import.meta.url
рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди ES рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░рдкреЗрдХреНрд╖ URL рд╣реИред
рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ package.json рдореЗрдВ рдирдпрд╛ "рдкреНрд░рдХрд╛рд░" рдлрд╝реАрд▓реНрдб
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ package.json рдореЗрдВ "type": "module"
рдЬреЛрдбрд╝реЗрдВ, рдФрд░ Node.js ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рднреА .js
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред
рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ рдЕрднреА рднреА .cjs
рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП .cjs
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ package.json
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ package.json
{ "type": "commonjs" }
, рдЬреЛ Node.js рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ { "type": "commonjs" }
рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░рддреНрдпреЗрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, Node.js рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ package.json
рдХреЛ рджреЗрдЦреЗрдЧрд╛, рдлрд┐рд░ рдПрдХ рд╕реНрддрд░ рдКрдкрд░, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЬрдм рддрдХ рдпрд╣ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ред рдпрд╣ рддрдВрддреНрд░ Babel .babelrc
рдХреИрд╕реЗ Babel .babelrc
ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг Node.js рдХреЛ рдкреИрдХреЗрдЬ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ package.json
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреИрдмреЗрд▓ рдФрд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдкреИрдХреЗрдЬ рдбреЗрд╡рд▓рдкрд░ рдПрдХ type
рдлрд╝реАрд▓реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА commonjs
рд▓рд┐рдЦрд╛ рдЧрдпрд╛ commonjs
ред
рдкреИрдХреЗрдЬ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдФрд░ рдкреИрдХреЗрдЬ.рдЬреЙрди рдореЗрдВ "рдирд┐рд░реНрдпрд╛рдд" рдлрд╝реАрд▓реНрдб
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ: main
рдФрд░ exports
ред main
рдХреНрд╖реЗрддреНрд░ Node.js рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╕реАрдорд┐рдд рд╣реИрдВ: рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдкреИрдХреЗрдЬ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореБрдЦреНрдп рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирдпрд╛ exports
рдХреНрд╖реЗрддреНрд░ рдЖрдкрдХреЛ рдореБрдЦреНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ, рд╕рд╛рде рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ exports
рдкрде рдЙрдкрд▓рдмреНрдз рд╣реИрдВред exports
рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓, рдХреЙрдордирдЬрд╕ рдФрд░ рдИрдПрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ require
рдпрд╛ import
рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВред
рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ pkg/feature
рдЖрдпрд╛рдд рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрде рдЬреИрд╕реЗ ./node_modules/pkg/esm/feature.js
рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдЖрдпрд╛рдд pkg/esm/feature.js
рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ exports
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ Node.js рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрднреА рднреА рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ, рд╕реБрд╡рд┐рдзрд╛, рд╕рд╢рд░реНрдд рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреИрдХреЗрдЬ рдХреЛ рдХреЙрдордирдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА require("pkg")
рдФрд░ ES рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП import "pkg"
рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рдкреИрдХреЗрдЬ рд▓рд┐рдЦрдирд╛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИ ред рдЖрдк тАФ-experimental-conditional-exports
рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рд╢рд░реНрдд рдирд┐рд░реНрдпрд╛рдд рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирдП рдореЙрдбреНрдпреВрд▓ рдХреА рдореБрдЦреНрдп рд░реЗрдХ
рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди
рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд, "./startup/index.js"ред
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рдирд┐рдпрдорд┐рдд рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдпрд╛рдд рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
module.exports
, exports
, module.exports
, __filename
, __dirname
рдХреЙрдордирдЬрд╕ рдХреЗ рдпреЗ рдореВрд▓реНрдп ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, require
рдХреЛ module.createRequire()
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓. module.createRequire()
рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред __filename
рдФрд░ __dirname
рдХреЛ import.meta.url
рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛
рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкреИрдХреЗрдЬ рд▓реЗрдЦрдХ рдЕрдкрдиреЗ Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдордирдЬреЗрд╕ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Node.js рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдореВрд╣ рджреЛрд╣рд░реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд░рд╛рд╕рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП CommonJSред рд╕рд╢рд░реНрдд рдирд┐рд░реНрдпрд╛рдд рдЕрдм рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЬрдирд╡рд░реА 2020 рдХреЗ рдЕрдВрдд рддрдХ рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдкрд╣рд▓реЗ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛрд╣рд░реА рдХреЙрдордирдЬ / рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ рджреЗрдЦреЗрдВ ред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛрдЧрд╛
рд▓реЛрдбрд░ред рдХрд╕реНрдЯрдо рд▓реЛрдбрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдЬрд╛рд░реА рд╣реИ, рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЯреНрд░рд╛рдВрд╕рдкреНрд▓рд┐рдореЗрдВрдЯреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдпрд╛рдд рдкрде (рдкреИрдХреЗрдЬ рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдФрд░ рдХреЛрдб рдХрд╛ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рднреАред рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдПрдкреАрдЖрдИ, тАФ-experimental-loader
рдзреНрд╡рдЬ рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдзреНрд╡рдЬ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реЛрдЧрд╛ред
рджреЛрд╣рд░реА CommonJS / ES рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬред рд╣рдо рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрдордирдЬрд╕ рдореЗрдВ require
рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ import
рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рд╣рдо рдХрд╛рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдзреНрд╡рдЬ рд╕реЗ рдкреАрдЫреЗ рд╣рдЯрдиреЗ рдХрд╛ рд╕рдордп рдЬрдирд╡рд░реА 2020 рдХреЗ рдЕрдВрдд рддрдХ рд╣реИ, рдпрджрд┐ рдкрд╣рд▓реЗ рдирд╣реАрдВред
рд╡рд╣ рд╕рдм рд╣реИ! рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП ECMAScript рд╕рдорд░реНрдерди Node.js рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рдирдХреЛрдВ рдХреЗ рдХрд░реАрдм рд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд▓рд╛рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдпрд╣рд╛рдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ: https://github.com/nodejs/modules ред