Underscore: рд╡реЗрдмрдкреИрдХ рдЕрдиреБрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ('рдЕрдВрдбрд░рд╕реНрдХреЛрд░') рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдордИ 2020  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jashkenas/underscore

рдореИрдВрдиреЗ рдЖрдЬ 1.9.2 рд╕реЗ 1.10.2 рддрдХ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП require('underscore'); рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдорд┐рд╢реНрд░рдг рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ TypeError: _.camelcase is not a function :

const _ = require('underscore');
const underscoreString = require('underscore.string');

_.mixin(underscoreString.exports());

console.log(_.camelcase('foo-bar'));

рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

import _ from 'underscore';
const underscoreString = require('underscore.string');

_.mixin(underscoreString.exports());

console.log(_.camelcase('foo-bar'));

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

рдпрд╣ рд╕реБрдирдХрд░ рдЦреЗрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХрд╛рдЯ рд░рд╣рд╛ рд╣реИ, @dmaicherред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ 1.10.2 рдФрд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░.рд╕реНрдЯреНрд░рд┐рдВрдЧ 3.3.5 рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рд╣реИ?

рдЖрдкрдХреЗ рддреЗрдЬрд╝ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж: рдмреНрд▓рд╢:

рдореИрдВ [email protected] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред рдЬрдм рдореИрдВ рд╕реАрдПрд▓рдЖрдИ рдкрд░ рдиреЛрдб рдХреЗ рд╕рд╛рде рдХреЛрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ: рднреНрд░рдорд┐рдд:

рдпрд╣рд╛рдБ рдПрдХ рдиреНрдпреВрдирддрдо рдкреБрдирд░реБрддреНрдкрд╛рджрдХ рд╣реИ: https://github.com/dmaicher/underscore_issue_2852

рдпрд╣рд╛рдБ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ:

https://github.com/dmaicher/underscore_issue_2852/blob/348eef226ec7392b2ced2b92ddf2fcba2517ab5c/public/build/app.js#L13

рд╡рд╣ рдЖрдпрд╛рдд рдкрде, underscore/modules/index-all.js , рд╡реЗрдмрдкреИрдХ рдХреЛ рд╣рдорд╛рд░реЗ package.json рдореЗрдВ module рдлрд╝реАрд▓реНрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

https://github.com/jashkenas/underscore/blob/5d8ab5e37c9724f6f1181c5f95d0020815e4cb77/package.json#L17 -L18

рдЬрдмрдХрд┐ main рдлрд╝реАрд▓реНрдб рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдк CommonJS рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред module рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ ES рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, main рдмрд╛рдХреА рд╕рднреА рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб import рд╕рд╛рде рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди require() ред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡реЗрдмрдкреИрдХ рдЖрдЬрдХрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдорд╛рдирддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЙрдордирдЬреЗрдПрд╕ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдлреЙрд▓рдмреИрдХ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ ES рдореЙрдбреНрдпреВрд▓ рди рдорд╛рдиреЗрдВ рдпрд╛ module рдлрд╝реАрд▓реНрдб рдХреЛ рдЕрдирджреЗрдЦрд╛ рди рдХрд░реЗрдВред рдпрд╛ рд╢рд╛рдпрдж рдЖрдк ES рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдореБрджреНрджреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡реЗрдмрдкреИрдХ рдореБрджреНрджрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЯрд┐рдкреНрдкрдгреА рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

@jgonggrijp рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж: +1:

рдореИрдВ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:
'underscore': 'underscore/underscore.js',

рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬ "main" рдФрд░ "module" рдХреЛ рдЙрдирдХреЗ package.json рдЕрдВрджрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╡реЗрдмрдкреИрдХ ['browser', 'module', 'main'] . рдХреНрд░рдо рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдлрд╝реАрд▓реНрдб рд▓реЗрддрд╛ рд╣реИ
рджреЗрдЦреЗрдВ https://webpack.js.org/configuration/resolve/#resolvemainfields

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ: рдмреНрд▓рд╢:

рдпрджрд┐ рдЖрдк рдЙрди рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдирд╛рдо рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рд╡реИрд╕реЗ рднреА, module рдФрд░ main рд╡рд┐рдирд┐рдореЗрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдирдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реИ:

https://github.com/rollup/rollup/wiki/pkg.module

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдХрдо рдмрджрд╕реВрд░рдд рд╕рдорд╛рдзрд╛рди рдкрд░ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ resolve.mainFields рд╕реЗ ['main'] ред рдлрд┐рд░ рд╕реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ module рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк CommonJS рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдмрд╕ рдЕрдЧрд░ рдпрд╣рд╛рдБ рдХреБрдЫ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБ рдЬрд┐рдирдореЗрдВ module рдФрд░ main :

https://www.npmjs.com/package/vuejs-datepicker
https://www.npmjs.com/package/bootstrap-vue
https://www.npmjs.com/package/acorn
https://www.npmjs.com/package/perfect-scrollbar

рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдмрдкреИрдХ рд╕рдорд╕реНрдпрд╛: https://github.com/webpack/webpack/issues/5756

рд╣рд╛рдБ, рд╡рд╣ рддреБрдореНрд╣рд╛рд░рд╛ рдореБрджреНрджрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ module рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рд╡реЗрдмрдкреИрдХ рдХреЙрдордирдЬреЗрдПрд╕ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реИ:

// converting modules/index-all.js to ES3
var underscoreESModule = {
    'default': _,
    map: _.map,
    filter: _.filter,
    // ...
};
// in your code that imports underscore
var _ = underscoreESModule;

рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рдереЗ рддреЛ рдмрд╛рдж рдХреА рдкрдВрдХреНрддрд┐ рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧреА:

import * as _ from 'underscore';

рд▓реЗрдХрд┐рди рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

import _ from 'underscore';

рдФрд░ рд╡реЗрдмрдкреИрдХ рдореЗрдВ рдЗрд╕реЗ ES3 рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

var _ = underscoreESModule['default'];

рдпрд╣ рднреА рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рд▓реЛрдЧ рд╡реЗрдмрдкреИрдХ/рд╡реЗрдмрдкреИрдХ#5756 рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред

рдЕрдиреНрдп рдмрд┐рд▓реНрдб рдЯреВрд▓ рдЬреИрд╕реЗ Browserify рдФрд░ Rollup рдЗрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред рд╕рд┐рд░реНрдл рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП...

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

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

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

chikamichi picture chikamichi  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

haggholm picture haggholm  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ