<p>๋กœ์ผ€์ผ์ด์žˆ๋Š” ์ˆœ๊ฐ„ : "./locale"์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.</p>

์— ๋งŒ๋“  2016๋…„ 02์›” 22์ผ  ยท  48์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: moment/moment

webpack์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค์Œ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

WARNING in ./~/moment/min/moment-with-locales.js
Module not found: Error: Cannot resolve 'file' or 'directory' ./locale in \node_modules\moment\min
@ ./~/moment/min/moment-with-locales.js 271:16-43

๋‹จ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

Discussion Documentation Help Wanted

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ข‹์€ ๊ฒฐ๊ณผ๋กœ ignore ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    // /app/js/webpack.config.js
    plugins: [

        // Fixes warning in moment-with-locales.min.js 
        //   Module not found: Error: Can't resolve './locale' in ...
        new webpack.IgnorePlugin(/\.\/locale$/)
    ]

๋ชจ๋“  48 ๋Œ“๊ธ€

# 1435๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๋งˆ์ง€๋ง‰์— ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•. ๊ฐ์‚ฌ.

webpack.config.js์˜ "ํ”Œ๋Ÿฌ๊ทธ์ธ"์—์„œ ์ œ์•ˆ ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

new webpack.ContextReplacementPlugin(/moment[\\\/]locale$/, /^\.\/(en|de|cz|eu)$/)

์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋‹ค

์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ๋ฌธ์ œ๋Š” min / moment-with-locales.js ํŒŒ์ผ์— ํฌํ•จ ๋œ require('./locale' + name) ๋ฌธ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋กœ์ผ€์ผ์ด ์ด๋ฏธ์ด ํŒŒ์ผ ์ž์ฒด์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ webpack์€ ๋ชจ๋“  require ๋ฌธ์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฏ€๋กœ์ด ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@ichernev- ๋‚˜๋Š” @mheimschild ๊ฐ€

moment-with-locales.js์— ์ด๋ฏธ ํฌํ•จ ๋œ ๋กœ์ผ€์ผ์„ ์ฐพ์ง€ ์•Š๋„๋ก webpack์„ ์„ค๋“ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋Œ€์‹  ๋‹ค๋ฅธ ๊ฒƒ์„๋กœ๋“œํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๋นˆ ๋ชจ๋“ˆ ์„ค์น˜ (๋ฌธํ•™์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํฌํ•จํ•˜์ง€ ์•Š์Œ)
npm install --save-dev empty-module
๋‹ค์Œ๊ณผ ๊ฐ™์ด ContextReplacementPlugin์„ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค.
new webpack.ContextReplacementPlugin(/\.\/locale$/, 'empty-module', false, /js$/)

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@mheimschild ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋นˆ ๋ชจ๋“ˆ์ด ์ž๋™์œผ๋กœ ๊ฐœ๋ฐœ ์ข…์†์„ฑ์œผ๋กœ ํฌํ•จ ๋˜๋”๋ผ๋„ Webpack 2์—์„œ์ด ๋ฌธ์ œ๋ฅผ ์ด๋ฏธ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉด ์ข‹์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

empty-module ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. null๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ContextReplacementPlugin์—์„œ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

new webpack.ContextReplacementPlugin(/\.\/locale$/, null, false, /js$/)

npm ๋ฅผ ํ†ตํ•ด momentjs๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
locales.js ์—์„œ ./locale/ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ ๋ผ์ธ์ด ์–ธ์–ด ํ˜„์ง€ํ™”๋ฅผ ์ฐพ์œผ๋ ค๊ณ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. CMIIW

ํ•œํŽธ ๋กœ์ผ€์ผ ํŒŒ์ผ์€ ../../locale/ ์—์„œ locale.js
ํ•ด๋‹น ์ค„์„ require ('../../locale/' + name); ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ๋‚ด ์„œ๋ฒ„์—์„œ ์ด์™€ ๊ฐ™์ด node_modules ์ง์ ‘ ํŽธ์ง‘ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜์ค‘์— ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ webpack ๋ฐฉ์‹์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค

ํŽธ์ง‘ : ๋‚˜๋Š” ์ด๊ฒƒ์„ Windows์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ฒฝ๋กœ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฆฌ๋ˆ…์Šค์—์„œ ์ˆœ๊ฐ„์„ ์‹คํ–‰ ํ•ด ๋ณด์•˜๊ณ  ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ๊ฒฐ๊ณผ๋กœ ignore ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    // /app/js/webpack.config.js
    plugins: [

        // Fixes warning in moment-with-locales.min.js 
        //   Module not found: Error: Can't resolve './locale' in ...
        new webpack.IgnorePlugin(/\.\/locale$/)
    ]

@miguelrincon ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

๋Œ€๋ฐ•. ํšจ๊ณผ๊ฐ€์žˆ๋‹ค!

@miguelrincon ๋˜๋Š” ์œ ์‚ฌ-๋ฌธ์„œ์— ๋Œ€ํ•œ ํ’€ ์š”์ฒญ์„๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์›นํŒฉ ์•„๋ž˜์˜ ์‚ฌ์šฉ ์„น์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

Webpack.config ํŒŒ์ผ์ด์—†๋Š” Angular 4๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Hybrid Apps Ionic 3.5์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์œ„์˜ @miguelrincon ์ œ์•ˆ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ฆ‰, ๋นŒ๋“œ ์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†” ๋กœ๊ทธ์— ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์œ„๋ฅผ ๋‘˜๋Ÿฌ ๋ณธ ํ›„ ์ด๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

https://github.com/afc163/react-boilerplate/commit/61ec8a19df0fcb56d407b795cb6c87141e0e14a7

\\ webpack.js

resolve: {
   ....
   alias: {
      moment$: 'moment/moment.js',
   },
   ...
}

์ด ๋ฌธ์ œ๋Š” moment.js 2.19.0์—์„œ ๋‚˜์—๊ฒŒ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋‹น์žฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘๋™์‹œ์ผœ์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๋กค๋ฐฑ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด :

npm install [email protected] ์ €์žฅ

@ jeff3dx ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค!

@ jeff3dx ์ตœ์‹  ๋ฒ„์ „์—์„œ ๋˜‘๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ–ˆ์ง€๋งŒ @ M1chaelTran์ด ์ œ์•ˆํ•œ๋Œ€๋กœ resolve ๋ณ„์นญ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์—ฌ์ „ํžˆ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

2.18์„ ๊ณ ์ˆ˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ฆ‰์‹œ ํ•ด๊ฒฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. React 16์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฉ˜ํŠธ 2.19๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. 2.18๋กœ ๋˜๋Œ๋ ค ์˜ค๋ฅ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•œ๋‹ค!
61 ํ–‰์˜ src / lib / locale / locales.js,
61. ์š”๊ตฌ ( './locale/'+ name);
๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ :
61. ์š”๊ตฌ ( './'+ name);
"๋กœ์ผ€์ผ์ด์žˆ๋Š” ์ˆœ๊ฐ„ :"./locale "์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ"์ด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@ wushuang5112 node_module ์„ ํŽธ์ง‘ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์†”๋ฃจ์…˜์ด ์ €์žฅ์†Œ์— ์ˆœ๊ฐ„์„ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”๋ฐ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ react ๋ฐ webpack์„ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์—์„œ moment 2.19๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 2.18๋กœ ๋˜ ๋Œ๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋กค๋ฐฑํ•˜๋Š” ๋Œ€์‹  webpack ๊ตฌ์„ฑ ๋‚ด์—์„œ momentjs์— ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋Š” @ M1chaelTran ์˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ผํ–ˆ๊ณ  ์ตœ์‹ ์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ! ... v2.19.1

@ M1chaelTran ๋‚จ์ž ๋‹น์‹ ์€ ์ถ•๋ณต์ž…๋‹ˆ๋‹ค, ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค !!!

v2.19.1์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

WARNING in ./~/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/project/node_modules/moment/src/lib/locale'
 @ ./~/moment/src/lib/locale/locales.js 56:12-46
 @ ./~/moment/src/lib/locale/locale.js
 @ ./~/moment/src/moment.js
 @ dll reactBoilerplateDeps

๊ทธ๋Ÿฌ๋‚˜ @ M1chaelTran ๋ณ„์นญ ํŠธ๋ฆญ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@electrobabe ๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ... ๋ฌธ์„œ๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ตฌ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ...

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด Can't resolve './locale' in , min/locales ๋Œ€์‹  moment-with-locales moment ๋ฐ min/locales ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜์—๊ฒŒ ๊ณ ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

์ด์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ์ฐธ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
http://momentjs.com/docs/#/i18n/loading -into-browser /

2.18๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ์ด ์žˆ์Œ : ์˜ค๋ฅ˜ : "./locale"๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ƒํ•œ ์ ์€ ์ด๊ฒƒ์„ ๊ณ ์น˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • react-native ํ”„๋กœ์ ํŠธ์—์„œ moment-with-locales ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์•ผํ•ฉ๋‹ˆ๋‹ค.
  • reactjs ํ”„๋กœ์ ํŠธ์—์„œ moment/locales ํŒŒ์ผ์„ ๊ฐ€์ ธ

@manelephant ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค : https://github.com/moment/moment/issues/2979#issuecomment -346636284

2.18๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ๋„ CLI๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ˆœ๊ฐ„์ด ์ž‘๋™ํ–ˆ์ง€๋งŒ npm์œผ๋กœ ๋‚ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด packagr ==>

FESM15๋กœ ์ปดํŒŒ์ผ
'locale'์€ 'node_modulesmomentsrcmoment.js'์—์„œ ๋‚ด ๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ์˜ค๋ฅ˜
๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ( 'moment')๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์˜ค๋ฅ˜ : ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ( 'moment').

๋ˆ„๊ตฐ๊ฐ€ ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ์Šค๋ ˆ๋“œ์— ์œ ์šฉํ•œ ์กฐ์–ธ์ด ๋งŽ์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๋ฌธ์„œ์— PR์„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค! https://github.com/moment/momentjs.com

๋ชจ๋“  ์ •๋ณด์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

๊ฐ€์ ธ ์˜ค๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ• :

import * as moment_ from 'moment'; const moment = moment_;

๊ทธ๋ฆฌ๊ณ  ng-package.json์—์„œ :

{ "lib": { "externals": { "moment": "moment" } } }

๋‚˜์—๊ฒŒ๋Š” ๊ตฌ์กฐ๊ฐ€ ๊ฑฐ์ง“์ด์—ˆ๊ณ  ์™ธ๋ถ€๋Š” lib ๋‚ด๋ถ€์— ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— packgr์€ lib.externals๋ฅผ ์ฐพ๊ณ  ์žˆ์—ˆ๊ณ  ์ˆœ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

Ng-packgr ๋ฐ ์ˆœ๊ฐ„

์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ง€๊ธˆ์€ 2.22.2์ž…๋‹ˆ๋‹ค.

ng-packagr์„ ์‚ฌ์šฉํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์••์ถ•ํ•˜๋Š” ๋™์•ˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ผ : @vZanchiV

'locale'์€ 'node_modulesmomentsrcmoment.js'์—์„œ ๋‚ด ๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ์˜ค๋ฅ˜
๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ( 'moment')๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์˜ค๋ฅ˜ : ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ( 'moment').

ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ž… ์—…์ฒด์ž…๋‹ˆ๋‹ค.

import * as moment from 'moment';

์ž˜ ์ง„ํ–‰๋˜์ง€ ์•Š์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค.

import * as momentImported from 'moment';

์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ng-packagr๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ : ์˜ค๋ฅ˜ : 'C : developmentangularTestangulartestnode_modules \ modulename์—์„œ'./locale '์„ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@ francisrod01 ์˜ ์†”๋ฃจ์…˜์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

import moment from 'moment/min/moment-with-locales'

๋‚˜๋Š” ๋ณ€ํ–ˆ๋‹ค

import moment from 'moment'
import 'moment/min/locales'

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@ M1chaelTran ์ด ์œ„์— ๊ฒŒ์‹œ ํ•œ ๋ณ„์นญ ์†”๋ฃจ์…˜์ด ์ž˜ ์ž‘๋™ ์•Œ์•˜ ์Šต๋‹ˆ๋‹ค. Laravel Mix๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถ๊ธˆํ•ดํ•˜๋Š” ๊ฒฝ์šฐ, ๊ท€ํ•˜์˜ webpack.mix.js ๋Š” ์ƒ๋‹จ์— ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

let mix = require('laravel-mix');

mix.webpackConfig({
    resolve: {
        alias: {
            moment$: 'moment/moment.js'
        }
    }
});

์œ„์˜ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•ด ๋ณด๋ฉด '๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ์ˆœ๊ฐ„ ๋ฒ„์ „'๋งŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ 'antd'์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋ชจ๋“ˆ์—๋Š” 2.19.0์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™์•„์š”

        new webpack.ContextReplacementPlugin(/^\.\/locale$/, (context) => {
            if (!/\/moment\//.test(context.context)) return;

            Object.assign(context, {
                regExp: /^\.\/\w+/,
                request: '../../locale', // resolved relatively
            });
        }),

์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

# 4216 (๋ถ€ํŒ…์‹œ # 3872)๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ญ์‚ฌ๊ฐ€ ๊ฐ€์žฅ ํฐ 4216 ํ˜ธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

@aaronkrohn ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.์ด ์†”๋ฃจ์…˜์€ react-boilerplate v.4์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

moment.min.js ๋Œ€์‹  ๋กœ์ผ€์ผ์„ ๋จผ์ €๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

"์ˆœ๊ฐ„": [
"../node_modules/moment/locale/en-au.js",
"../node_modules/moment/min/moment.min.js"
]

์ด๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ˆœ๊ฐ„ 2.24.0 ์žˆ๊ณ  ์ด๊ฒƒ์€ ๋งˆ์นจ๋‚ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

    // Fixes warning in moment-with-locales.min.js
    //   Module not found: Error: Can't resolve './locale' in ..
    new webpack.ContextReplacementPlugin(/^\.\/locale$/, context => {
      if (!/\/moment\//.test(context.context)) return

      Object.assign(context, {
        regExp: /^\.\/\w+/,
        request: '../locale', // resolved relatively
      })
    })

@aaronkrohn ์ˆ˜์ •๊ณผ ๊ฑฐ์˜ ๋™์ผํ•˜์ง€๋งŒ request: '../../locale', ๋Œ€์‹  request: '../locale', ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ : "momentsrc \ liblocalelocales.js"56 ํ–‰ :
"./locale"์„ "../../locale"๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์•Œ๋ ‰์‚ฐ๋“œ๋ผ

์ˆ˜์ •์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค ...

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

import moment from 'moment/src/moment';

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ์ด๊ฒƒ์œผ๋กœ ๋ฐ”๊พธ์‹ญ์‹œ์˜ค

import * as moment from 'moment';

create-react-app์„ ์‚ฌ์šฉ ํ•˜๋ฉด ์•„๋ž˜ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

import * as moment from "moment/moment.js"

create-react-app์„ ์‚ฌ์šฉ ํ•˜๋ฉด ์•„๋ž˜ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

import * as moment from "moment/moment.js"

@ mssui ์˜ ์†”๋ฃจ์…˜์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

 "resolutions": {
    "moment": "2.24.0"
  }

package.json์— ์œ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์‹œ ์›์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ดœ์ฐฎ์•„

webpack.config.js

์ด ํŒŒ์ผ์„ ์–ด๋””์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฐธ์กฐํ•œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ ์ˆœ๊ฐ„ ์†Œ์Šค ํด๋”๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์œผ๋ฉฐ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

https://momentjs.com/docs/#/ -project-status / ์ฐธ์กฐ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰