Handlebars.js: рд╡реЗрдмрдкреИрдХ + рд╣реИрдВрдбрд▓рдмрд╛рд░ рддреНрд░реБрдЯрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЬрдире░ 2016  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: handlebars-lang/handlebars.js

рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

тЦ╢ webpack --display-modules   
Hash: bdb0fe35e2f8bde783e5
Version: webpack 1.12.12
Time: 116ms
         Asset     Size  Chunks             Chunk Names
bundle.main.js  2.82 kB       0  [emitted]  main
   [0] ./src/index.js 150 bytes {0} [built]
   [1] ./~/handlebars/lib/index.js 792 bytes {0} [built] [3 warnings] [3 errors]

WARNING in ./~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.

WARNING in ./~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.

WARNING in ./~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.

ERROR in ./~/handlebars/lib/index.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../dist/cjs/handlebars/compiler/printer in /home/abhisekp/MyProjects/JSApps/MadeWithLove-Webpack/node_modules/handlebars/lib
 @ ./~/handlebars/lib/index.js 9:14-64

ERROR in ./~/handlebars/lib/index.js
Module not found: Error: Cannot resolve module 'fs' in /home/abhisekp/MyProjects/JSApps/MadeWithLove-Webpack/node_modules/handlebars/lib
 @ ./~/handlebars/lib/index.js 17:11-24

ERROR in ./~/handlebars/lib/index.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../dist/cjs/handlebars in /home/abhisekp/MyProjects/JSApps/MadeWithLove-Webpack/node_modules/handlebars/lib
 @ ./~/handlebars/lib/index.js 7:17-50 

рдореЗрд░рд╛ index.js

var handlebars = require('handlebars');

рдореЗрд░рд╛ package.json

  "dependencies": {
    "handlebars": "^4.0.5"
  }

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдпрд╛ ..

resolve: {
    alias: {
       handlebars: 'handlebars/dist/handlebars.min.js'
    }
}

рдореЗрд░реЗ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬреИрд╕рд╛ рдХрд┐ #1102 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдирд╛
"browser": "dist/handlebars.js",
рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЗ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдПредjson рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред

рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИрдВрдбрд▓рдмрд╛рд░ рдирд╣реАрдВред
рдХрд┐рд╕реА рднреА рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдХреЛрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрде /node_modules/module_name/dist.

рдпрд╣реАрдВ рдкрд░ рдПрдХ рдиреЛрдб рдРрдк рдорд╛рди рд▓реЗрдЧрд╛ рдХрд┐ рд╡реЗ рд╕реНрдерд┐рдд рд╣реИрдВ; рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИ (); рдиреЛрдб рд╕реЗ рдЕрд▓рдЧред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдпрд╛ ..

resolve: {
    alias: {
       handlebars: 'handlebars/dist/handlebars.min.js'
    }
}

рдореЗрд░реЗ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ

рдзрдиреНрдпрд╡рд╛рдж @gilesbradshaw :+1::рдореБрд╕реНрдХрд╛рди:

@abhisekp рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛? рдХреГрдкрдпрд╛ рдмрдВрдж рдХрд░реЗрдВ рдпрджрд┐ рд╣рд╛рдБред

@rafde рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд┐рдпрд╛ред :рд╢рд░рдорд╛рдирд╛:

рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдкреБрди: рдЙрддреНрдкрдиреНрди рд╣реЛ рд░рд╣реА рд╣реИ рдЕрдЧрд░ рдореБрдЭреЗ .js рдореЗрдВ рдХрд╣реАрдВ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

var Handlebars = require('handlebars');
Handlebars.registerHelper('greet', function(name) {
            return 'Hello, name=' + name + '!';
});

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛ рджреВрдВ

var Handlebars = require('handlebars');

рдореБрджреНрджрд╛ рдЪрд▓рд╛ рдЧрдпрд╛

@gilesbradshaw
рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдХреЛрдгреАрдп 2 рд╕реАрдПрд▓рдЖрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓рддреА рд╣реИред рдореИрдВ рдЕрдкрдирд╛ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдВрдЧреБрд▓рд░ рд╕реАрдПрд▓рдЖрдИ рдЯреАрдо рдиреЗ рдПрдВрдЧреБрд▓рд░ рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╡реЗрдмрдкреИрдХ рд╡рд┐рд╡рд░рдг рдЫрд┐рдкрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

@oocx рдЖрдк JS рдлрд╝рд╛рдЗрд▓ рдХреЛ node_modules рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐

import 'handlebars/dist/handlebars.min.js';

рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдЗрд╕реЗ рдХреЛрдгреАрдп 4 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
рдЖрдпрд╛рдд * 'рд╣реИрдВрдбрд▓рдмрд╛рд░/рдЬрд┐рд▓рд╛/рд╣реИрдВрдбрд▓рдмрд╛рд░' рд╕реЗ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ;

рдЖрдо рддреМрд░ рдкрд░ рдореИрдВ рдмрд╕ рдпрд╣ рдХрд░реВрдБрдЧрд╛:
рдЖрдпрд╛рдд * 'рд╣реИрдВрдбрд▓рдмрд╛рд░' рд╕реЗ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ;

рдКрдкрд░ рдХреА рд░реЗрдЦрд╛ рдиреЛрдб рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдгреАрдп 4 рдореЗрдВ рдирд╣реАрдВред

рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдореБрдЭреЗ рдЪрд┐рдВрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдбрд╝рдХ рдХреЗ рдиреАрдЪреЗ рдПрдХ рдореБрджреНрджрд╛ рд░рдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХреЛрдгреАрдп рдХреЗ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдЦреЗрд▓рддрд╛ рд╣реИред

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ "рдХрдм" рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ рд╡рд╛рджрд╛ рдирд╣реАрдВ...

@swilliams-a3digital Could not find a declaration file for module рдШреЛрд╖рд┐рдд рдореЙрдбреНрдпреВрд▓ 'рд╣реИрдВрдбрд▓рдмрд╛рд░' рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдпрд╛ @ рдкреНрд░рдХрд╛рд░/рд╣реИрдВрдбрд▓рдмрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?

рдпрд╣рд╛рдВ рджреЗрдЦ рд░рд╣реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП

рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ
https://github.com/valtech-nyc/brookjs/blob/master/packages/brookjs/webpack.config.js#L39 -L43
рдпрд╣рд╛рдБ https://github.com/pcardune/handlebars-loader/issues/110#issuecomment -358681867

рдзрдиреНрдпрд╡рд╛рдж @mAAdhaTTah

рдпреВрдкреАрдбреА:

//fix handlebars warnings
config.resolve.alias = {
    ...config.resolve.alias,
    'handlebars/runtime': 'handlebars/dist/cjs/handlebars.runtime',
    'handlebars': 'handlebars/dist/cjs/handlebars.runtime',
};

рдпрд╣ рдордВрдж рд╣реИред
рдЗрд╕ handlebars рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
рдлрд┐рд░ рднреА рд╡реЗ рдЙрдкреЗрдХреНрд╖рд╛ рдФрд░ рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдорд╛рдзрд╛рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ:

import Handlebars from 'handlebars'

рд╕рд╛рде:

import Handlebars from 'handlebars/dist/cjs/handlebars'

@catamphetamine рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рддреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЬрдм рддрдХ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛, рдореИрдВ рд╡рд┐рд▓рдп рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛ред NodeJS рдореЗрдВ const Handlebars = require('handlebars') рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдФрд░ рд╡реЗрдмрдкреИрдХ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рд╕реЗрдЯрдЕрдк рдЕрднреА рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

"рдлрд┐рд░ рднреА рд╡реЗ рдЙрдкреЗрдХреНрд╖рд╛ рдФрд░ рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:

рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╕рдордп, рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ, рдореИрдВ рдЕрдХреЗрд▓рд╛ рд╕рдХреНрд░рд┐рдп рд╣реВрдБред рдЦреИрд░, рдХрдореЛрдмреЗрд╢ рд╕рдХреНрд░рд┐рдпред рдЕрдм 23:26 рдмрдЬ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдпрд╣реА рд╡рд╣ рд╕рдордп рд╣реИ рдЬрдм рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреЗ рдирд┐рдЬреА рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдЖрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рд╡рд╛рд░ рд╣реИ рдЬреЛ рдПрдХ рджрд┐рди рдХрд╛ рдХрд╛рдо рдФрд░ рдЕрдиреНрдп рд╢реМрдХ рд╣реИрдВред

рддреЛ рдЬрдм рдЖрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ "рдлрд┐рд░ рднреА рд╡реЗ рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ", рддреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ "рд╡реЗ" рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдИ "рд╡реЗ" рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдордЬреЗрджрд╛рд░ рд╣реИ рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛, рдмрдЧ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдордЬреЗрджрд╛рд░ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЦреБрдж рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рд╕рдордп-рд╕рдордп рдкрд░ рд╕реНрдЯреЗрдЬ-рд▓рд╛рдЗрдЯ рдореЗрдВ рдЦрдбрд╝реЗ рд░рд╣рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХрд░рдирд╛ рдореЗрд░рд╛ рдХрд░реНрддрд╡реНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рдЪреБрдирддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рд╡реЗ рдЬреЛ рддреНрд╡рд░рд┐рдд рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд▓ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдХреНрдпреЛрдВрдХрд┐ рд╕рдордп-рд╕рдордп рдкрд░ рдордВрдЪ-рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдЦрдбрд╝реЗ рд░рд╣рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рднреА рдУрдкрдирд╕реЛрд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд┐рддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИред
рдФрд░ рдореЗрд░реЗ рд╕реАрд╡реА рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рднреАред рдмреЗрд╣рддрд░ рдиреМрдХрд░реА рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдордиреЛрд░рдВрдЬрди рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдн рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ @nknapp/handlebars.js
рдЖрдк рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдпреВрдЖрд░рдПрд▓ рдмрд╛рд░ рдЬрд╛рддрд╛ рд╣реИ @wycats рдХреЛ рд╕рднреА рдХреНрд░реЗрдбрд┐рдЯ рдФрд░
рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдм рдЗрддрдиреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд░рдЦреА рдЧрдИ рд╣реИред
рдлрд┐рд░ рднреА, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ (рд╡рд┐рд░рд╛рд╕рдд рд╕рд╣рд┐рдд) рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SendGrid рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ handlebars рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ" рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реИред
https://sendgrid.com/blog/how-to-use-sendgrids-dynamic-templates-for-your-transactional-emails/
https://github.com/sendgrid/sendgrid-nodejs/issues/221

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдХреА рдмрд╛рдд рд╣реИ, рдпрд╣ рдкреИрдХреЗрдЬ рдХреЛ handlebars рдФрд░ handlebars/register рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рджреЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдмреЗрд▓ рдиреЗ рдЕрдкрдиреЗ babel рдФрд░ babel/register ред
рд╡реЗ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдкрд┐рдд require() рд╣реБрдХ рдЬрдм рдХрд░ import 'babel/register' ред
рдпрд╣ рдПрдХ рдФрд░ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЬрдбрд╝ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреА рддрд░рд╣ рдХреБрдЫ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ core.js ( module.exports = require('handlebars/dist/cjs/handlebars') ) рдФрд░ рдлрд┐рд░ Webpack рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА handlebars/core рдХреЗ рдмрдЬрд╛рдп handlebars/dist/cjs/handlebars (рдПрдХ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд░реАрдбрдореЗ рдореЗрдВ)ред
рд╡реЗрдмрдкреИрдХ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рднреА рдЬрд░реНрдордиреА рд╕реЗ рд╣реА рд╣реИрдВред

рд╡реИрд╕реЗ рднреА, import Handlebars from 'handlebars/dist/cjs/handlebars' рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд╢рд╛рдпрдж README рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЖрдпрд╛рдд рдХреЗ рдмрдЬрд╛рдп import Handlebars from 'handlebars/dist/cjs/handlebars' рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡реИрд╕реЗ, рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдкрдХрд╛ рдЬрд┐рдХреНрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдкрд╣рд▓реЗ рдХреЛрдИ рдирдХрд╛рд░рд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдЫреЛрдбрд╝реА рдереАред
рдореИрдВ @methodbox рдФрд░ рдЙрдирдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛:

рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИрдВрдбрд▓рдмрд╛рд░ рдирд╣реАрдВред

рдФрд░ @rafde рдФрд░ рдЙрдирдХреА рдЯрд┐рдкреНрдкрдгреА:

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ

рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдиреЗ рд╡реЗрдмрдкреИрдХ рдХреЗ "рдЧрд▓рдд" рдпрд╛ рдХреБрдЫ рднреА рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреА рдУрд░ рд╕реЗ рдХреЛрдИ рдЧрд▓рдд рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИ:

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ "рдХрдм" рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ рд╡рд╛рджрд╛ рдирд╣реАрдВ...

рдЖрдкрдиреЗ рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдХрд┐ "рд╡реЗрдмрдкреИрдХ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ" рддреЛ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдареАрдХ рд╣реИрдВред

@nknapp
рд╡реИрд╕реЗ рднреА, import Handlebars from 'handlebars/dist/cjs/handlebars' рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рд╢рд╛рдпрдж рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд░реАрдбрдореЗ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ рдХрд┐ "рдпрджрд┐ рдЖрдк рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ import Handlebars from 'handlebars/dist/cjs/handlebars' рдмрдЬрд╛рдп import Handlebars from 'handlebars' ред
import Handlebars from 'handlebars/dist/cjs/handlebars' рдареАрдХ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

import Handlebars from 'handlebars/dist/cjs/handlebars

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ @catamphetamine рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред

рдмреЗрд╣рддрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдВрд╕реНрдерд╛рдкрди рдкреГрд╖реНрда рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рднреА рдирд╣реАрдВ рдорд╛рд░реЗрдЧрд╛ред

рд╣рдо рд╕рднреА рдорд╣рд╛рди рдЪреАрдЬреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпрд╛, рдЕрдЧрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмреЗрдХрд╛рд░ рд╣реИ ... рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднреА рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдордЭ рдкрд╛рдПрдВрдЧреЗред

рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВ... рд▓реЛрдЧ рдбрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВред

рдЕрдВрдд рд╢реЗрдЦрд╝реА-

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рджреЗрд╡ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рдХрдо рдЗрдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдзрдиреНрдпрд╡рд╛рджрд╣реАрди рдФрд░ рджрд░реНрджрдирд╛рдХ рдУрдбрд┐рд╕реА рд╣реЛрддрд╛ рд╣реИред

рдЕрд╕рд▓ рдореЗрдВ, рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рд╕рд┐рд░реНрдл рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░рд▓реЗрдЦрди рд╕рд╛рдЗрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЬрдм рднреА рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рдмрдЪрд╛ рд╣реЛрдЧрд╛) рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рдХрд░реВрдВрдЧрд╛ред

#1102 рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

amirzandi picture amirzandi  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

janus-reith picture janus-reith  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

snimavat picture snimavat  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

LengYXin picture LengYXin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nknapp picture nknapp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ