Handlebars.js: рд╡реЗрдмрдкреИрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдлрд╝рд░ре░ 2015  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: handlebars-lang/handlebars.js

рдХреНрдпрд╛ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рдмрд╛рд░ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЗрди рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

./~/handlebars/lib/index.js рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА
рдЖрд╡рд╢реНрдпрдХрддрд╛.рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡реЗрдмрдкреИрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд▓реЛрдбрд░ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

./~/handlebars/lib/index.js рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА
рдЖрд╡рд╢реНрдпрдХрддрд╛.рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡реЗрдмрдкреИрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд▓реЛрдбрд░ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

./~/handlebars/lib/index.js рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА
рдЖрд╡рд╢реНрдпрдХрддрд╛.рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡реЗрдмрдкреИрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд▓реЛрдбрд░ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

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

@kpdecker @seeliang : рдореИрдВ рд╕рд┐рд░реНрдл рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

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

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

рдореИрдВ рд╣реИрдВрдбрд▓рдмрд╛рд░-рд▓реЛрдбрд░ рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ handlebars/runtime рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реАрдХрдВрдкрд▓рд┐рдВрдЧ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдмреЛрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдмрд┐рд▓реНрдб рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЗрд╕ рдиреЛрдб-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред

рдореИрдВ рд╣реИрдВрдбрд▓рдмрд╛рд░-рд▓реЛрдбрд░ рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рд╣реИрдВрдбрд▓рдмрд╛рд░/рд░рдирдЯрд╛рдЗрдо рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реАрдХрдВрдкрд▓рд┐рдВрдЧ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

@kpdecker рд╣рдо рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ? рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИрдВрдбрд▓рдмрд╛рд░ 1.3.0 рдФрд░ рд╣реИрдВрдбрд▓рдмрд╛рд░-рд▓реЛрдбрд░ ^ 1.0.2 рджреЛрдиреЛрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рдлрд┐рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

define([
  'hbs!path/to/template' // path/to/template.hbs
],
function(template) {
  // ...
});

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

{
  resolveLoader: {
    fallback: path.join(__dirname, 'node_modules'),
    alias: {
      'hbs': 'handlebars-loader'
    }
  },
}

рддрд╛рдХрд┐ hbs! рд╣реИрдВрдбрд▓рдмрд╛рд░-рд▓реЛрдбрд░ рдореЗрдВ рдореИрдк рд╣реЛ рдЬрд╛рдПред рдлрд┐рд░ рдЬрдм рдореИрдВ рд╡реЗрдмрдкреИрдХ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╡реЗ рдкрд░рд┐рдЪрд┐рдд рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ:

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

рдореИрдВ рдХреНрдпрд╛ рдЦреЛ рд░рд╣рд╛ рд╣реВрдБ? рдореБрдЭреЗ handlebars/runtime рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ:

{
  resolve: {
    modulesDirectories: ['node_modules', 'src'],
    fallback: path.join(__dirname, 'node_modules'),
    alias: {
      'handlebars': 'handlebars/runtime.js'
    }
  },
  resolveLoader: {
    fallback: path.join(__dirname, 'node_modules'),
    alias: {
      'hbs': 'handlebars-loader'
    }
  }
}

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдХреБрдЫ рднреА рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╣рд╛рдп, @kpdecker ,

рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рдПрдХ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ @trusktr рдХреЗ "рд╕рдорд╛рдзрд╛рди" рдЦрдВрдб ('рд╣реИрдВрдбрд▓рдмрд╛рд░/рд░рдирдЯрд╛рдЗрдо.рдЬреЗрдПрд╕') рдХреЛ рд╡реЗрдмрдкреИрдХ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ "рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ред рд╕рдВрдХрд▓рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ"

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛?

рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЧрдд (рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░) рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВ, рддреЛ рдЖрдк рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЛ handlebars/dist/handlebars.js рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рджреЗрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ

рдзрдиреНрдпрд╡рд╛рдж @kpdecker ,
рдореИрдВ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛

рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП #1102 рднреА рджрд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд▓реАрдирд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реЗ рд░рдирдЯрд╛рдЗрдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@kpdecker @seeliang : рдореИрдВ рд╕рд┐рд░реНрдл рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

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

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

рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ
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',
};
const nodeExternals = require('webpack-node-externals');
module.exports = {
  externals: [nodeExternals()]
}

рдХрд╛рдо рднреА рдХрд░рддрд╛ рд╣реИред

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

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

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

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

ricardograca picture ricardograca  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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