Moment: Webpack 였λ₯˜: 2.19.0으둜 μ—…λ°μ΄νŠΈν•œ ν›„ "./locale" λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 10μ›” 10일  Β·  149μ½”λ©˜νŠΈ  Β·  좜처: moment/moment

νŽΈμ§‘: 쒅속성을 2.18.1둜 μ„€μ •ν•˜λ©΄ λͺ¨λ“  것이 μ •μƒμž…λ‹ˆλ‹€.
νŽΈμ§‘ 2 : package.json에 "moment": "2.18.1" μ„€μ •
νŽΈμ§‘ 3: 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

μ—¬λ³΄μ„Έμš”.
create-react-app μ‚¬μš©. μˆœκ°„μ„ 2.19.0으둜 μ—…λ°μ΄νŠΈν•œ ν›„ λ‘œλ“œ μ‹œ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

였λ₯˜: "./locale" λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
-> 9개의 μŠ€νƒ ν”„λ ˆμž„μ΄ λ¬΄λ„ˆμ‘ŒμŠ΅λ‹ˆλ‹€.
./src/utils/Utils.js
src/utils/Utils.js:1

1 | 'μˆœκ°„'μ—μ„œ μˆœκ°„ κ°€μ Έμ˜€κΈ°

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@patricksteenks : λ„€. package.json "moment": "2.18.1" μ—μ„œ 이와 같이 μˆ˜μ •ν•˜μ‹­μ‹œμ˜€.

λͺ¨λ“  149 λŒ“κΈ€

이 였λ₯˜λ₯Ό ν™•μΈν•˜λŠ” 것과 λ™μΌν•©λ‹ˆλ‹€.

여기도 λ§ˆμ°¬κ°€μ§€

확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

This relative module was not found:

* ./locale in ./node_modules/moment/src/lib/locale/locales.js

μ’‹μ•„, μš°λ¦¬λŠ” 이것을 쑰사할 κ²ƒμ΄μ§€λ§Œ, 그리 λΉ λ₯΄μ§€λŠ” μ•Šμ„ 것이닀.

λ‹€μŒμ— μ—°κ²°λœ 경우 λˆ„κ΅°κ°€κ°€ 보고 쑰사할 수 μžˆλŠ” 경우 require ν•¨μˆ˜μ˜ 이름을 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

https://github.com/moment/moment/pull/4213
https://github.com/moment/moment/pull/4214

λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆκΉŒ?

μ—¬κΈ°μ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ λ‚΄κ°€ μž‘μ—…ν•˜λŠ” μ—¬λŸ¬ 앱이 κ³ μž₯λ‚¬μŠ΅λ‹ˆλ‹€.

@patricksteenks : λ„€. package.json "moment": "2.18.1" μ—μ„œ 이와 같이 μˆ˜μ •ν•˜μ‹­μ‹œμ˜€.

@ichernev , ν•˜μ§€λ§Œ κ°€μ Έμ˜€μ§€ μ•Šκ³  λ‘œμΌ€μΌμ„ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. import moment from 'moment' 을 μ‚¬μš©ν•˜κ³  moment(date).locale('uk').format('ddd') 와 같이 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. λ‚΄κ°€ μ΄ν•΄ν–ˆλ“―μ΄ μˆ˜μž…μ„ locale . λ‚΄ κ²½μš°μ—λŠ” μ–΄λ–»κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

Angular-CLI λΉŒλ“œ ν”„λ‘œμ νŠΈμ—μ„œ λ™μΌν•œ 문제

ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

VueJS 2 Webpack λΉŒλ“œλ„ 영ν–₯을 λ°›μ•˜μŠ΅λ‹ˆλ‹€. μž„μ‹œ μˆ˜μ •μ€ GautierTκ°€ μ œμ•ˆν•œ λŒ€λ‘œμž…λ‹ˆλ‹€(momentjs λ‹€μš΄κ·Έλ ˆμ΄λ“œ).

package.json (λͺ¨λ©˜νŠΈ 2.19의 moment-timezone dep κ΄€λ ¨ 문제)

    "moment": "2.18.1",
    "moment-timezone": "^0.5.13",

package.json (일반적인 문제)

    "moment": "2.18.1"

λ‚˜λŠ” 이것이 λ˜ν•œ μΌμ–΄λ‚˜κ³  μžˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€!

확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
νŒ¨ν‚€μ§€.json

"moment": "2.18.1"

@renedx 이

Angular 4 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλ„ λ™μΌν•©λ‹ˆλ‹€.
2.18.1둜 방금 λ‹€μš΄κ·Έλ ˆμ΄λ“œλ¨(package.json의 μ—„κ²©ν•œ 버전 번호)

이것도 λ‹Ήν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 그것이 동적 "μš”κ΅¬"λ₯Ό μΈμ‹ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ λ§ˆμˆ μ„ ν•˜λŠ” μ›ΉνŒ©μ΄λΌκ³  μƒκ°ν•˜κ³  더 이상 μƒˆ μ΄λ¦„μœΌλ‘œ 인식할 수 μ—†μœΌλ―€λ‘œ λ‘œμΌ€μΌμ΄ νŒ¨ν‚€μ§€μ— λ²ˆλ“€λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

(λ§λΆ™μ—¬μ„œ, 이 λͺ¨λ“  상황은 ES6 동적 κ°€μ Έμ˜€κΈ°κ°€ μ •ν™•νžˆ 무엇을 μœ„ν•œ 것인지 λ”μ°ν•˜κ²Œ λ“€λ¦½λ‹ˆλ‹€. μš°λ¦¬λŠ” κΏˆμ„ κΏ€ 수 μžˆμŠ΅λ‹ˆλ‹€ :-)

이 νŽ˜μ΄μ§€ μ—μ„œ webpackμ—μ„œ μ‚¬μš©

new IgnorePlugin(/^\.\/locale$/, /moment$/)

이제 제거

그리고 μš”κ΅¬μ—μ„œ

const moment = require('moment');

μ§€κΈˆ

const moment = require('moment').default;

μ—„λ°€νžˆ λ§ν•˜λ©΄ Angular 연결은 λŒ€λΆ€λΆ„μ˜ Angular ν”„λ‘œμ νŠΈκ°€ λ‚΄λΆ€μ μœΌλ‘œ Webpack을 μ‚¬μš©ν•˜λŠ” Angular-CLIλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν•΄λ‹Ή μŠ€νƒμ˜ 일뢀 νŠΉμ • Webpack ꡬ성과 관련이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ μƒλ‹Ήνžˆ 일반적인 λ²ˆλ“€λ§ 문제인 것 κ°™μŠ΅λ‹ˆλ‹€.

νšŒκ°œν•˜λΌ, νšŒκ°œν•˜λΌ, μ΅œν›„μ˜ 날이 μ™”λ‹€!

여기도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.

import moment from "moment"
import "moment/locale/fr"
moment.locale("fr")
WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/Users/kud/Projects/_contexte/lois-webapp/node_modules/moment/src/lib/locale'
 @ ./node_modules/moment/src/lib/locale/locales.js 65:16-60
 @ ./node_modules/moment/src/lib/locale/locale.js
 @ ./node_modules/moment/src/moment.js
 @ ./src/index.js

여기도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. νŒ¨ν‚€μ§€μ˜ κΈ°λ³Έ 섀정을 μ˜€λ²„λ‘œλ“œν•˜κΈ° μœ„ν•΄ 원사 κΈ°λŠ₯으둜 μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

이것을 κΈ°λ³Έ package.json에 λ°°μΉ˜ν•©λ‹ˆλ‹€(momentλ₯Ό 직접 λ‘œλ“œν•˜μ§€ μ•ŠμœΌλ©΄ momentλ₯Ό λ‘œλ“œν•˜λŠ” νŒ¨ν‚€μ§€ 이름에 "moment-timezone"을 적용).

  "resolutions": {
    "moment-timezone/moment": "2.18.1"
  },

10km μ†Œν–‰μ„±μ²˜λŸΌ .... 여기도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€ ...

μˆ˜μ •μ„ μœ„ν•œ ETAλŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

μ’‹μŠ΅λ‹ˆλ‹€.

  • 쒅속성을 2.18.1둜 μ„€μ •ν•˜λ©΄ λͺ¨λ“  것이 μ •μƒμž…λ‹ˆλ‹€.
  • 이것은 https://github.com/moment/moment/pull/4213 의 λ¬Έμ œμž…λ‹ˆλ‹€.
  • μ›ΉνŒ©κ³Ό λ°˜μ‘ λ„€μ΄ν‹°λΈŒ νŒ€μ„ λͺ¨λ‘ μ°Έμ—¬μ‹œμΌœ λͺ¨λ“  λ‹Ήμ‚¬μžμ—κ²Œ μ–΄λ–€ μˆ˜μ • 사항이 μ μš©λ˜λŠ”μ§€μ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν–ˆμŠ΅λ‹ˆλ‹€.
  • 쒅속성을 2.18.1둜 μ„€μ •ν•˜λ©΄ μ‰½κ²Œ μ™„ν™”ν•  수 μžˆμœΌλ―€λ‘œ ν˜„μž¬λ‘œμ„œλŠ” λ‘€λ°±ν•˜κ³  싢지 μ•ŠμŠ΅λ‹ˆλ‹€. λŒ€μ‹  Webpackκ³Ό React Native의 ν”Όλ“œλ°±μ„ 기닀리며 이 상황을 μ•žμœΌλ‘œ λ‚˜μ•„κ°€κΈ° μœ„ν•΄ 무엇을 ν•΄μ•Ό 할지 ν•©μ˜ν•  수 μžˆλŠ”μ§€ ν™•μΈν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 그런 이유둜 μˆ˜μ •μ— λŒ€ν•œ ETAκ°€ μ—†μŠ΅λ‹ˆλ‹€.
  • MCVEλŠ” https://github.com/mj1856/moment-webpack-test μ—μ„œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

create-react-app CLI둜 μƒμ„±λœ λ°˜μ‘ μ•± μ‹€ν–‰ μ‹œ 였λ₯˜κ°€ ν™•μΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 λ‹€μš΄κ·Έλ ˆμ΄λ“œ μˆœκ°„ 및 monent-timezone 버전을 ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

npm install [email protected] μž„μ‹œ μˆ˜μ •μœΌλ‘œ package.json μ—¬λŸ¬ 번 μ—…λ°μ΄νŠΈν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. 이것은 곧 μˆ˜μ •λ  것이며 npm i ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@aheissenberger 이것은 λ‚΄ 생λͺ…을 κ΅¬ν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” rc-calendar와 같은 λ¬Έμ œκ°€ μžˆμ—ˆκ³ , μ‹€ 1.2.0μ—μ„œ μž‘λ™ν•˜λŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ™μΌν•œ 문제 μ›ΉνŒ© 3.6.0 + μˆœκ°„ 2.19.0. 2.18.1μ—μ„œ 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ μ‚¬λžŒλ“€λ„ λ‚˜μ™€ 같은 λ¬Έμ œκ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 2.19.0으둜 μ—…λ°μ΄νŠΈν•˜μ§€ μ•Šμ•˜μ§€λ§Œ λ‚΄ package.jsonμ—λŠ” ^2.18.1 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 2.18.1 없이 ^ 둜 λ³€κ²½ν–ˆμœΌλ©° 이제 2.19.xκ°€ μ•ˆμ „ν•˜λ‹€λŠ” 것을 μ•Œ λ•ŒκΉŒμ§€ 2.18.1 이상을 μ„€μΉ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@ichernev λŠ” 'require'의 이름이 μ΄λŸ¬ν•œ κ΄‘λ²”μœ„ν•œ 손상을 μ•ΌκΈ°ν•  κ°€λŠ₯성이 맀우 높은 것 κ°™μŠ΅λ‹ˆλ‹€. 그런 μ°Έμ‘°λ₯Ό μ‚¬μš©ν•˜λŠ” λͺ¨λ“ˆμ΄ ν•„μš”ν•  λ•Œ μ›ΉνŒ©μ€ 쒅속성을 κ²°μ •ν•˜κΈ° μœ„ν•΄ AST 정적 뢄석을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— κ°€μ Έμ˜€κΈ°λ₯Ό 감지할 수 μ—†λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

μ›λž˜ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλŠ” 더 λ‚˜μ€ 방법이 μžˆμ„ 수 μžˆμœΌλ―€λ‘œ μˆ˜μ • 쀑인 React Native λ¬Έμ œμ— λŒ€ν•œ μ„ΈλΆ€ 정보λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

우리 ν”„λ‘œμ νŠΈμ—μ„œ yarn 1.0.2 , create-react-app , 그리고 package.json μ΄λŸ¬ν•œ depsλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

"dependencies": {
    "@types/history": "^4.5.0",
    "@types/jest": "^20.0.6",
    "@types/material-ui": "^0.18.2",
    "@types/moment-timezone": "^0.5.0",
    "@types/node": "^8.0.20",
    "@types/react": "^16.0.10",
    "@types/react-big-calendar": "^0.14.0",
    "@types/react-dnd": "^2.0.33",
    "@types/react-dnd-html5-backend": "^2.1.8",
    "@types/react-dom": "^16.0.1",
    "@types/react-modal": "^1.6.6",
    "@types/react-redux": "^4.4.40",
    "@types/react-router-dom": "^4.0.4",
    "@types/react-router-redux": "^5.0.0",
    "@types/redux": "^3.6.0",
    "@types/redux-logger": "^3.0.0",
    "@types/redux-promise-middleware": "^0.0.6",
    "@types/validator": "6.3.0",
    "lodash": "^4.17.4",
    "material-ui": "0.19.2",
    "material-ui-datatables": "^0.18.2",
    "material-ui-fullscreen-dialog": "0.7.1",
    "moment": "2.18.1",
    "moment-timezone": "^0.5.13",
    "react": "^15.6.1",
    "react-barcode": "^1.2.0",
    "react-big-calendar": "^0.15.0",
    "react-bootstrap": "^0.31.0",
    "react-bootstrap-table": "^3.4.2",
    "react-bootstrap-time-picker": "^1.0.3",
    "react-dnd": "^2.4.0",
    "react-dnd-html5-backend": "^2.4.1",
    "react-dock": "^0.2.4",
    "react-dom": "^15.5.4",
    "react-modal": "^1.7.7",
    "react-pdf-js": "^2.0.5",
    "react-phone-number-input": "^0.12.10",
    "react-print": "^1.3.1",
    "react-redux": "5.0.6",
    "react-router-dom": "^4.1.1",
    "react-router-redux": "next",
    "react-tap-event-plugin": "^2.0.1",
    "react-transition-group": "^1.1.1",
    "redux": "3.7.2",
    "redux-logger": "^3.0.1",
    "redux-persist": "^4.8.0",
    "redux-promise-middleware": "4.2.1",
    "reselect": "^3.0.1",
    "validator": "8.2.0",
    "zxcvbn": "^4.4.2"
 }

"moment": "2.18.1" λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ§€λ§Œ μ—¬μ „νžˆ
screen shot 2017-10-10 at 3 53 43 pm

원사 문제의 ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

@ggsjyoon : WebPack이 μž¬μƒμ„±ν•˜κ³  μΊμ‹œλœ 버전을 μ—†μ• κΈ° μœ„ν•΄ WebPack이 보고 μžˆλŠ” 파일 쀑 ν•˜λ‚˜λ₯Ό μ—…λ°μ΄νŠΈν•΄μ•Ό ν•œλ‹€λŠ” 것을 κΈ°μ–΅ν•  λ•ŒκΉŒμ§€ λΉ„μŠ·ν•œ 상황(μ—¬μ „νžˆ 였λ₯˜κ°€ λ°œμƒν•¨)이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

+1

@ggsjyoon νŒ¨ν‚€μ§€ 쀑 ν•˜λ‚˜μ—μ„œ μΆ”κ°€ μš”κ΅¬ 사항이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€(예: moment-timezone) - λ‚΄ 팁 https://github.com/moment/moment/issues/4216#issuecomment -335489518을 μ‚¬μš©ν•˜μ—¬ μ›μ‚¬λ‘œ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ‹€μŒμ„ λ³€κ²½ν•˜μ—¬ 이것을 μ§€λ‚˜μ³€μŠ΅λ‹ˆλ‹€.

import * as moment from 'moment';

μ—κ²Œ:

import * as moment from 'moment/moment';

+1

@morrisonbrett 이것은 μž‘λ™ν•©λ‹ˆλ‹€. 감사 ν•΄μš”

@GautierT 의 μ œμ•ˆμ„ ν™•μΈν•˜λŠ”

@maggiepint @morrisonbrett 근무 무엇을보고, λ‚˜λŠ” # 4213이 λ¬Έμ œκ°€λ˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” 생각을 ν•΄μš”. 2.19λŠ” package.json의 λͺ¨λ“ˆ ν•„λ“œμ— 또 λ‹€λ₯Έ μƒˆλ‘œμš΄ λ³€κ²½ 사항을 λ„μž…ν–ˆμŠ΅λ‹ˆλ‹€. 즉, 이전에 webpack은 트랜슀파일된 버전을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

λ¦¬μ•‘νŠΈ λ„€μ΄ν‹°λΈŒλ₯Ό μœ„ν•΄ ES6을 μΌœλŠ” 것이 #4187을 μ°¨λ‹¨ν•˜λŠ” λŒ€λΆ€λΆ„μ˜ 문제λ₯Ό 일으켰고 #3904(개발 λΈŒλžœμΉ˜μ—μ„œ κ½€ μ˜€λž«λ™μ•ˆ)λŠ” λͺ¨λ“  μ›ΉνŒ© μ‚¬μš©μžμ—κ²Œ λ™μΌν•œ 변경을 κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

@tqc - μ•„λ§ˆλ„ λ‘˜ 닀일 κ²ƒμž…λ‹ˆλ‹€. @thelarkinn은 이미 webpack이 동적 μš”κ΅¬ 사항을 μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

λ™μΌν•œ 문제, μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@maggiepint λ„€, μ“°λ ˆλ“œ 끝에 μžˆλŠ” 버그가 μ²˜μŒμ—λŠ” 같은 버그가 μ•„λ‹ˆλΌλŠ” λŒ“κΈ€μ„ μ“΄ 직후에 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. module.exports = require(β€˜moment’).default 와 같은 κ²ƒμœΌλ‘œ ES6 츑면을 κ³ μΉ  수 μžˆμ§€λ§Œ 이것이 μ—¬μ „νžˆ 트리 흔듀림을 ν—ˆμš©ν•˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμœΌλ©° λ…Έλ“œ μ‘°ν™”κ°€ import와 requireλ₯Ό ν˜Όν•©ν•˜λŠ” 것을 μ’‹μ•„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ›ΉνŒ© 앨리어싱을 톡해 ν•΄κ²°:

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

λˆ„κ΅°κ°€κ°€ 2.19μ—μ„œ μ›ΉνŒ©μ„ λ§κ°€λœ¨λ¦° λͺ¨λ“  λΉ„νŠΈλ₯Ό μ•Œμ•„λ‚΄κ³  "λ‚˜μœ" 뢀뢄을 λ˜λŒλ¦¬λŠ” μ΅œμ†Œν•œμ˜ PR(2.19.0 기반)을 μ œμ•ˆν•˜κ³  2.19.1에 λ³‘ν•©ν•˜λŠ” 것을 κ³ λ €ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

1000번 λ™μ•ˆ "me too"라고 λ§ν•˜λŠ” 것은 큰 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

@morrisonbrett 의 μ†”λ£¨μ…˜μ€ import * as moment from 'moment/moment';

Angular-CLI v1.4.4μ—μ„œλ„ 이와 λ™μΌν•œ 문제λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ 이λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— momentjs와 κ΄€λ ¨λœ 였λ₯˜λ₯Ό 보고 μ²˜μŒμ— λ†€λžμ§€λ§Œ μ‘°μ‚¬ν•œ ν›„ WebPack에 λŒ€ν•œ μ£Όμž…μ„ λ‹€μ‹œ μΆ”μ ν–ˆμŠ΅λ‹ˆλ‹€.

λΉŒλ“œν•  λ•Œ κ²½κ³  λ©”μ‹œμ§€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale'
resolve './locale' in '/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale'
  using description file: /Users/scott/Development/web-admin/node_modules/moment/package.json (relative path: ./src/lib/locale)
    Field 'browser' doesn't contain a valid alias configuration
  after using description file: /Users/scott/Development/web-admin/node_modules/moment/package.json (relative path: ./src/lib/locale)
    using description file: /Users/scott/Development/web-admin/node_modules/moment/package.json (relative path: ./src/lib/locale/locale)
      as directory
        /Users/scott/Development/web-admin/node_modules/moment/src/lib/locale/locale doesn't exist
[/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale/locale]
 @ ./node_modules/moment/src/lib/locale/locales.js 65:16-60
 @ ./node_modules/moment/src/lib/locale/locale.js
 @ ./node_modules/moment/src/moment.js
 @ ./src/app/admin-analytics/admin-analytics.component.ts
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts

λ‚˜λŠ” λ˜ν•œ import * as moment from 'moment/moment'; 방법을 μ‹œλ„ν–ˆμ§€λ§Œ λ‚΄ κ²½μš°μ—λŠ” 운이 μ—†μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @kud , @AleshaOleg – 아직 λ‘œμΌ€μΌμ„ κ°€μ Έμ˜€λ €λŠ” 경우:
λŒ€μ‹ μ—:
import 'moment/locale/*
λ…Έλ ₯ν•˜λ‹€:
import 'moment/src/locale/*'

μ—¬κΈ°μ—μ„œ 같은 문제둜 μ‹Έμš°κ³  μžˆμŠ΅λ‹ˆλ‹€ ...
–––
@AleshaOleg : κ·€ν•˜μ˜ μ‚¬μš© μ‚¬λ‘€μ—μ„œλŠ” λ‹€μŒκ³Ό
import moment from 'moment'
import 'moment/src/locale/uk'
그런 λ‹€μŒ moment(date).format('ddd') ν˜ΈμΆœν•©λ‹ˆλ‹€.

@dialnco κ°μ‚¬ν•©λ‹ˆλ‹€!

2.19.0 μ—…λ°μ΄νŠΈν•  λ•Œ λ‘œμΌ€μΌ λ‘œλ“œλ₯Ό μ‹œλ„ν•˜λŠ” μ½”λ“œλ₯Ό μ™„μ „νžˆ λΉ„ν™œμ„±ν™”ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

({
  test: /moment\/src\/lib\/locale\/locales.js$/,
  enforce: 'pre',
  use: {
    loader: 'imports-loader',
    options: {
      module: '>undefined', // this disables the if
      require: '>false' // this prevents webpack from trying to parse the requires
    }
  }
})

그런 λ‹€μŒ λͺ¨λ“  λ‘œμΌ€μΌμ„ λ‘œλ“œν•˜λŠ” λŒ€μ‹  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ ν•„μš”μ— 따라 import 'moment/src/locale/ja' , import 'moment/src/locale/pt-br' 등을 μˆ˜λ™μœΌλ‘œ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 창의적이라면 λŒ€μ‹  동적 import() μ‚¬μš©ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•„μš”ν•œ μ–Έμ–΄λ§Œ λ‘œλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ ν•˜λŠ” 경우 import 'moment/locale/foo' κ°€ μ•„λ‹ˆλΌ import 'moment/src/locale/foo' ν•˜λŠ” 것이 맀우 μ€‘μš” ν•©λ‹ˆλ‹€. λ‘œμΌ€μΌ 파일이 moment 자체λ₯Ό μ°Έμ‘°ν•˜λ €κ³  μ‹œλ„ν•˜λŠ” 방식 λ•Œλ¬Έμ— λŒ€μ‹  moment 의 두 번째 볡사본을 λ²ˆλ“€λ‘œ μ œκ³΅ν•©λ‹ˆλ‹€(μ΄λ²ˆμ—λŠ” ESM λΉŒλ“œμ™€ λ°˜λŒ€λ˜λŠ” UMD λΉŒλ“œ). λͺ¨λ“  λ‘œμΌ€μΌμ„ λ‹€μ‹œ λ‘œλ“œν•˜μ‹­μ‹œμ˜€.

이것이 λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€( @patsissons 덕뢄에 μœ„μ˜ μ„€λͺ…μ—μ„œ μ˜΅μ…˜ 1 및 2).
- moment.jsλ₯Ό λ‘œλ“œν•˜λŠ” λͺ¨λ“ˆμ΄ μ—†μ§€λ§Œ 앱에 μžˆλŠ” 경우 이전 λ²„μ „μœΌλ‘œ μ΄λ™ν•˜μ„Έμš”.
- μœ„μ˜ 쒅속성에도 moment.jsκ°€ μžˆλŠ” λͺ¨λ“ˆμ΄ 있으면 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ›ΉνŒ© ꡬ성을 μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
{...
ν•΄κ²°ν•˜λ‹€: {
...
별칭: {
'μˆœκ°„$': 'μˆœκ°„/μˆœκ°„',
}
}
}

-ν•˜μ§€λ§Œ λ‚΄κ°€ ν•˜λŠ” κ²ƒμ²˜λŸΌ react-create-app을 μ‚¬μš© 쀑이고 'npm κΊΌλ‚΄κΈ°'λ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” μœ μΌν•œ μ˜΅μ…˜μΈ μž‘μ—… λΉŒλ“œκ°€ μ΅œλŒ€ν•œ 빨리 ν•„μš”ν•˜λ‹€λ©΄ μ›ΉνŒ© ꡬ성에 μ•‘μ„ΈμŠ€ν•  수 있고 두 번째 μ˜΅μ…˜μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£„μ†‘ν•˜μ§€λ§Œ μ—¬κΈ°μ—μ„œ μž‘λ™ν•˜λŠ” μœ μΌν•œ 방법은 @patsissons 'μ˜€μŠ΅λ‹ˆλ‹€. https://github.com/moment/moment/issues/4216#issuecomment -335637520

아직

import moment from "moment"
import "moment/locale/fr"
moment.locale("fr")

ν•˜μ§€λ§Œ μ›ΉνŒ©μ— μΆ”κ°€

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

μ–΄λ–€ 이유둜 μ›μ‚¬λŠ” package.json의 "해상도" 섀정을 λ¬΄μ‹œν–ˆμŠ΅λ‹ˆλ‹€.
μˆœκ°„ μ‹œκ°„λŒ€λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 이λ₯Ό μˆ˜μ •ν•˜λŠ” ν•΄ν‚Ή 방법은 yarn.lock을 νŽΈμ§‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

[email protected]:
  version "2.18.1"
  resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"

"moment@>= 2.9.0":
  version "2.18.1"
  resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"

μš°λ¦¬λŠ” μˆ˜μ • 2.19.1을 κΈ°λ‹€λ¦½λ‹ˆλ‹€....

λˆ„κ΅°κ°€ μ‹€μ œ λ¬Έμ œκ°€ 무엇인지 μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‹¨μˆœνžˆ webpack이 별칭이 μžˆλŠ” require() λ₯Ό μ‹λ³„ν•˜μ§€ λͺ»ν•˜λŠ” κ²ƒμž…λ‹ˆκΉŒ?

@TomMettam 2.19.0은 moment/src/moment의 es6 μ½”λ“œμ—μ„œ webpack을 가리킀며, moment/moment와 λ™μΌν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 내보내지 μ•ŠμŠ΅λ‹ˆλ‹€.

κ²Œλ‹€κ°€, aliased requireλŠ” webpack이 λ™μ μœΌλ‘œ μš”μ²­ν•  수 μžˆλŠ” λͺ¨λ“  νŒŒμΌμ„ νŒ¨ν‚€μ§•ν•˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€. λ‘œμΌ€μΌ νŒŒμΌμ„ μˆ˜λ™μœΌλ‘œ κ°€μ Έμ˜€λŠ” 것은 μž‘λ™ν•˜μ§€λ§Œ, μˆœκ°„/λ‘œμΌ€μΌμ—μ„œ κ°€μ Έμ˜€κΈ°λ₯Ό μ„ νƒν•˜λ©΄ μ‹€μ œλ‘œ μ‚¬μš© 쀑인 것과 λ‹€λ₯Έ μˆœκ°„ μΈμŠ€ν„΄μŠ€λ‘œ λ‘œλ“œλ©λ‹ˆλ‹€.

그리고 그것이 λ„ˆλ¬΄ κ°„λ‹¨ν•˜λ‹€λ©΄ λ‹€λ₯Έ λ²„μ „μ˜ yarn/npm의 λ™μž‘μ— 차이가 μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” μš°μ—°νžˆ 루트 μ•± node_modules 폴더에 μžˆλŠ” νŒ¨ν‚€μ§€ μΈμŠ€ν„΄μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” npm 버전을 μ‚¬μš©ν•˜κ³  μžˆμ§€λ§Œ λ‹€λ₯Έ λ²„μ „μ—μ„œλŠ” μ‚¬μš©λœ νŒ¨ν‚€μ§€λ₯Ό μž¬μ •μ˜ν•˜κΈ°κ°€ 더 μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

λΆ€ λ²„μ „μ—μ„œ 내보내기 μ„œλͺ…을 λ³€κ²½ν•˜λŠ” 것이 쒋은 생각이라고 λˆ„κ°€ κ²°μ •ν–ˆμŠ΅λ‹ˆκΉŒ?

이것은 μˆœκ°„μ— μ˜μ‘΄ν•˜λŠ” 타사 λΌμ΄λΈŒλŸ¬λ¦¬λ„ μ†μƒμ‹œν‚΅λ‹ˆλ‹€.

+1

λ§ˆμ΄λ„ˆ μ—…κ·Έλ ˆμ΄λ“œμ—λŠ” ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

뒀에 μžˆλŠ” μ•„μ΄λ””μ–΄λŠ” μ΄ν•΄ν•˜μ§€λ§Œ semver에 λŒ€ν•΄ 더 μ—„κ²©ν•˜κ²Œ μ μš©ν•΄ μ£Όμ„Έμš”.

@darkalor μ˜λ„μ μ΄μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 문제의 내보내기 μ„œλͺ…은 μ œν•œλœ μƒν™©μ—μ„œλ§Œ μ‹€μ§ˆμ μœΌλ‘œ λ‹€λ¦…λ‹ˆλ‹€. μ΄λŠ” λ§Žμ€ μ‚¬μš©μžμ—κ²Œ λ…ΈμΆœλ  λ•ŒκΉŒμ§€ 잘 μž‘λ™ν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

@darkalor @kud - νšŒκ·€κ°€ λ°œμƒν•©λ‹ˆλ‹€. 건섀적인 λ…Έλ ₯을 κΈ°μšΈμ΄μ‹­μ‹œμ˜€. λͺ¨λ“  μ‚¬λžŒλ“€μ€ 이런 일이 μΌμ–΄λ‚˜μ„œλŠ” μ•ˆ λœλ‹€λŠ” 사싀을 μ•Œκ³  있으며 ν˜Έμ–Έμž₯담은 λˆ„κ΅¬μ—κ²Œλ„ 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@TomMettam 예, λ°œμƒν•˜μ§€λ§Œ λ°œμƒν•˜λ©΄ μ²˜λ¦¬ν•  수 있으며 μ²˜λ¦¬ν•¨μœΌλ‘œμ¨ λ§ˆμ΄λ„ˆκ°€ μ•„λ‹Œ λ©”μ΄μ €λ‘œ μ—…κ·Έλ ˆμ΄λ“œν•  수 μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. 그게 λ‹€μ•Ό. λˆ„κ΅°κ°€λ₯Ό νƒ“ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λˆ„κ΅°κ°€κ°€ "μ•„, λ§ˆμ΄λ„ˆμΌ λΏμ΄λ‹ˆ μ—…κ·Έλ ˆμ΄λ“œν•  수 μžˆλ‹€"κ³  μƒκ°ν•œλ‹€λ©΄ 이 κ²½μš°μ—λŠ” 였히렀 잘λͺ»λœ 상황을 νƒ“ν•œλ‹€. ;)

κ·Έ μˆœκ°„μ— ν•˜λŠ” λͺ¨λ“  일에 κ°μ‚¬ν•˜μ§€λ§Œ λΆˆμ•ˆμ •ν•œ 상황에 λŒ€ν•΄μ„œλ§Œ μ΄μ•ΌκΈ°ν•©λ‹ˆλ‹€.

λ‚˜λŠ” λˆ„κ΅¬λ₯Ό ν™”λ‚˜κ²Œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€, μ£„μ†‘ν•©λ‹ˆλ‹€.

νšŒκ·€κ°€ μ‘΄μž¬ν•œλ‹€λŠ” 것을 μ•ŒκΈ° 전에 버전 번호λ₯Ό 선택해야 ν•  λ•ŒλŠ” @kudκ°€ μ•„λ‹™λ‹ˆλ‹€. μˆ˜λ§Žμ€ ν™˜κ²½μ„ μ§€μ›ν•˜λŠ” 데 ν•„μš”ν•œ λ³΅μž‘μ„± μˆ˜μ€€μ€ 맀우 μΈμƒμ μž…λ‹ˆλ‹€.

@tqc ν•˜μ§€λ§Œ 이제 당신은 그것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 그것이 λ°”λ‘œ κ·Έκ²ƒμž…λ‹ˆλ‹€. @TomMettam이 이전에

νƒœκ·Έ 제거 및/λ˜λŠ” μΆ”κ°€κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ–΄μ¨Œλ“  μ—¬κΈ°μ„œ 더 이상 슀팸 메일을 보내지 μ•Šκ² μŠ΅λ‹ˆλ‹€. ν•΄κ²° 방법에 λŒ€ν•΄ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. λ³€κ²½ λ‘œκ·Έμ— 이 문제λ₯Ό λ”°λ₯΄μ§€ μ•ŠλŠ” λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•œ λ©”λͺ¨λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. https://gist.github.com/ichernev/5f3f4eb02761b4f765a0cccf02cec603#gistcomment -2226628

쒋은 ν•˜λ£¨ λ˜μ„Έμš”. :)

λ‚΄ νŒ¨ν‚€μ§€ κ΄€λ¦¬μžλ‘œ 원사λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ–€ 이유둜 λ‚΄ yarn.lock 파일이 λ‚΄ package.json νŒŒμΌμ—μ„œ λ³€κ²½ν•œ 사항을 λ°˜μ˜ν•˜λ„λ‘ μ—…λ°μ΄νŠΈλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. @daniesyκ°€ λ§ν•œλŒ€λ‘œ λ‚΄ μ„€μ •. λ¬Έμ œλŠ” λ‚΄ yarn.lock 파일의 moment-timezone이 μ—¬μ „νžˆ μˆœκ°„ 버전 '^2.18.1'에 μ˜μ‘΄ν•œλ‹€λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ €λŠ” yarn cache clean 을 μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
yarn cache clean

κ·Έ λ‹€μŒμ— :
yarn install

λ°”λΌκ±΄λŒ€, 이것은 λ‹€μŒ 라인을 따라 yarn.lock νŒŒμΌμ„ λ‹€μ‹œ 생성해야 ν•©λ‹ˆλ‹€.

[email protected]:
  version "0.5.13"
  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.13.tgz#99ce5c7d827262eb0f1f702044177f60745d7b90"
  dependencies:
    moment ">= 2.9.0"

[email protected], [email protected], "moment@>= 2.9.0", moment@^2.17.1:
  version "2.18.1"
  resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" 

μ–΄λŠ μͺ½μ΄λ“ , ur yarn lock이 λͺ¨λ“  λͺ¨λ“ˆ, 특히 moment-timezone 및 moment에 2.18.1보닀 큰 moment 버전을 ν¬ν•¨ν•˜λ €κ³  ν•˜μ§€ μ•ŠλŠ”μ§€ ν™•μΈν•˜μ„Έμš”.

μˆ˜μ • 사항이 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€: https://github.com/moment/moment/pull/4232

κ°€μž₯ 쒋은 점 - λ‚˜λŠ” 이것이 webpackκ³Ό κΈ°λ³Έ λ°˜μ‘ λͺ¨λ‘μ—μ„œ μž‘λ™ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€ - μŠ¬ν””μ΄ μ—†μŠ΅λ‹ˆλ‹€!
λ‚˜λŠ” webpackμ—μ„œ ν…ŒμŠ€νŠΈν–ˆμ§€λ§Œ λ°˜μ‘ λ„€μ΄ν‹°λΈŒ ν…ŒμŠ€νŠΈλ₯Ό μ‚¬μš©ν•˜λŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ? npm 연결을 μ‚¬μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈν•˜κΈ° 전에 λΉŒλ“œλœ νŒŒμΌμ„ κ°€μ Έμ˜€λ €λ©΄ grunt 릴리슀λ₯Ό μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@maggiepint - Angular-CLIμ—μ„œλ„ μž‘λ™ν•  κ°€λŠ₯성이 μžˆμŠ΅λ‹ˆκΉŒ?

2.19.1이 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ‹œλ„ν•΄ λ³΄μ„Έμš”.

Webkitκ³Ό ν•¨κ»˜ μž‘λ™ν•©λ‹ˆλ‹€.

@ichernev 와 κ΄€λ ¨λœ λͺ¨λ“ 

@ichernev : 2.19.1이 μ €μ—κ²Œ 효과적 μž…λ‹ˆλ‹€.
λ°˜μ‘ 16.
생성 λ°˜μ‘ μ•±.
λ°°μΆœλ˜μ§€ μ•ŠμŒ

λ‹€μŒκ³Ό 같이 λ‘œλ“œλœ μˆœκ°„:

import moment from 'moment'
import 'moment/locale/fr'

μˆ˜μ •ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. πŸ‘

angular-cli/webpack을 μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ VSTS λΉŒλ“œλ₯Ό μ‹œμž‘ν•˜κ³  ν™˜κ²½μ— μž¬λ°°ν¬ν–ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  것이 μ •μƒμœΌλ‘œ λŒμ•„μ™”λ‹€

감사 ν•΄μš”

저도 Angular-CLI v1.4.4μ—μ„œ 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€!

typescript/webpack/karma/phantomjs와 ν•¨κ»˜ μž‘λ™ν•©λ‹ˆλ‹€. μˆ˜μ •ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

μž‘λ™ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ 방금 전에 λ‘œμΌ€μΌ νŒŒμΌμ„ ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€.
import 'moment/locale/de'; import moment from 'moment';
그리고 λ‚˜μ€‘μ— ν–ˆλ‹€
moment.locale("de");

"버전": "2.22.2"에 μ—¬μ „νžˆ μ‘΄μž¬ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” λ˜ν•œ 2.22.2λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμ œλŠ” μ—¬μ „νžˆ 쑴재

2.22.2λ₯Ό μ‚¬μš©ν•˜κ³  있으며 λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

μœ„μ™€ 같이. 같은 문제, 같은 버전.

λ°˜μ‘ λ„€μ΄ν‹°λΈŒλ₯Ό μ‚¬μš©ν•˜κ³  릴리슀 λΉŒλ“œμ— λŒ€ν•΄ λ‹€μŒ 였λ₯˜λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

09-04 13:47:38.684 26530 26554 E ReactNativeJS: Requiring unknown module "./locale/de".
09-04 13:47:38.693 26530 26555 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Process: com.integreat, PID: 26530
09-04 13:47:38.693 26530 26555 E AndroidRuntime: com.facebook.react.common.JavascriptException: Requiring unknown module "./locale/de"., stack:
09-04 13:47:38.693 26530 26555 E AndroidRuntime: c<strong i="6">@2</strong>:649
09-04 13:47:38.693 26530 26555 E AndroidRuntime: i<strong i="7">@2</strong>:394
09-04 13:47:38.693 26530 26555 E AndroidRuntime: t<strong i="8">@2</strong>:324
09-04 13:47:38.693 26530 26555 E AndroidRuntime: vt<strong i="9">@882</strong>:16755
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Mt<strong i="10">@882</strong>:17781
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Mn<strong i="11">@882</strong>:29014
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="12">@1006</strong>:1442
09-04 13:47:38.693 26530 26555 E AndroidRuntime: qn<strong i="13">@108</strong>:40634
09-04 13:47:38.693 26530 26555 E AndroidRuntime: tr<strong i="14">@108</strong>:46334
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Nr<strong i="15">@108</strong>:56528
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Ur<strong i="16">@108</strong>:56960
09-04 13:47:38.693 26530 26555 E AndroidRuntime: ui<strong i="17">@108</strong>:61804
09-04 13:47:38.693 26530 26555 E AndroidRuntime: oi<strong i="18">@108</strong>:61224
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Ue<strong i="19">@108</strong>:68050
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Ie<strong i="20">@108</strong>:14248
09-04 13:47:38.693 26530 26555 E AndroidRuntime: We<strong i="21">@108</strong>:14421
09-04 13:47:38.693 26530 26555 E AndroidRuntime: receiveTouches<strong i="22">@108</strong>:15235
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="23">@18</strong>:3352
09-04 13:47:38.693 26530 26555 E AndroidRuntime: <unknown><strong i="24">@18</strong>:935
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="25">@18</strong>:2621
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="26">@18</strong>:907

2.22.1 μž‘ν’ˆ

μ—¬μ „νžˆ λ‚˜λ₯Ό μœ„ν•΄ μΌν•˜μ§€ μ•ŠλŠ”λ‹€

λ‚˜λŠ” 2.18.1도 λ‚˜λ₯Ό μœ„ν•΄ 일할 수 μ—†λ‹€

2.22.1 ftw γ…‹γ…‹

λ˜ν•œ v2.22.2μ—μ„œ νšŒκ·€λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. 2.22.1둜 λ‘€λ°±ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

같은 λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€(Laravelμ—μ„œ Webpack μ‚¬μš©). 이것은 μ΄μƒμ μ΄μ§€λŠ” μ•Šμ§€λ§Œ μ €μ—κ²Œ 효과적인 λΉ λ₯Έ μˆ˜μ •μ€ moment.js λ˜λŠ” moment-with-locale.js 파일과 ν•¨κ»˜ μ €μž₯μ†Œμ˜ "locale" 폴더λ₯Ό λ³΅μ‚¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

v2.22.2 ν•©λ‹ˆλ‹€.

μž‘λ™ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ 방금 전에 λ‘œμΌ€μΌ νŒŒμΌμ„ ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€.
import 'moment/locale/de'; import moment from 'moment';
그리고 λ‚˜μ€‘μ— ν–ˆλ‹€
moment.locale("de");

@mj1856 이 문제λ₯Ό λ‹€μ‹œ μ—¬λŠ” 것이 μ μ ˆν•©λ‹ˆκΉŒ μ•„λ‹ˆλ©΄ μƒˆλ‘œμš΄/μƒˆ 문제λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆκΉŒ? 저도 이거 또 λ΄…λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” 2.22.1둜 둀백해도 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šμ•˜κ³  μ›ΉνŒ©μ„ λ‹€μ‹œ ν–‰λ³΅ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ @patsisson μˆ˜μ • 을 μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

같은

https://momentjs.com/docs/#/use -it/typescript/ λ¬Έμ„œμ— μ„€λͺ…λœ λŒ€λ‘œ allowSyntheticDefaultImportsλ₯Ό μ‚¬μš©ν–ˆμœΌλ©° Cannot find module "./locale" 였λ₯˜κ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°€μ Έμ˜€κΈ° μœ„μ˜ // @ts-ignore 도 λ‚΄ IDEμ—μ„œ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€.

같은 질문, moment:'2.18.1'

이것이 μ—¬μ „νžˆ ꢌμž₯λ©λ‹ˆλ‹€: import moment from "moment/min/moment-with-locales"; ?

b/c [email protected] 및 CRAμ—μ„œ λ™μΌν•œ(?) 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

./node_modules/moment/min/moment-with-locales.js
Module not found: Can't resolve './locale' in '/...myproject/node_modules/moment/min'

λͺ¨λ“  인터넷 톡행인을 μœ„ν•΄ λ‘€μ—…μœΌλ‘œ λΉŒλ“œν•˜λŠ” 경우 μˆ˜μ •ν•  수 μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€.

rollup-plugin-node-resolve μ‚¬μš©ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

import commonjs from "rollup-plugin-commonjs";
import nodeResolve from "rollup-plugin-node-resolve";

export default {
    // your config...
    plugins: [
        nodeResolve({
            mainFields: ["module", "jsnext:main", "main"],
            preferBuiltins: false,
        }),
        commonjs({
            include: "node_modules/**",
        }),
    ]
}

moment 이 package.json λŒ€ν•œ ν•­λͺ© jsnext:main μš°λ¦¬λŠ” 여기에 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λΉŒλ“œ ν”„λ‘œμ„ΈμŠ€ 쀑에 λ‘œμΌ€μΌμ„ ν¬ν•¨ν•©λ‹ˆλ‹€. λ²ˆλ“€ 크기가 μ¦κ°€ν•˜μ§€λ§Œ μ½˜μ†” 였λ₯˜λ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€ πŸ˜…

λ‚΄ React μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ moment 버전 2.24.0κ³Ό λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œκ°€ 아직 ν•΄κ²°λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

λ‚΄ React μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ moment 버전 2.24.0κ³Ό λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œκ°€ 아직 ν•΄κ²°λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

확인 쀑. "μˆœκ°„": "2.24.0". 2.18.1 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•ŠμŒ. λ…Έλ“œ v12.16.0

λ‚΄ Preact ν”„λ‘œμ νŠΈμ— λŒ€ν•œ 2.24.0 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.

μ—¬μ „νžˆ 이 λ¬Έμ œκ°€ λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„μ™€μ£Όμ„Έμš”!!

λ‚˜λ₯Ό μœ„ν•΄ 깨진: "μˆœκ°„": "^2.24.0"(2.25.0으둜 ν•΄κ²°)
깨지지 μ•ŠμŒ: "μˆœκ°„": "2.24.0"

원사λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 resolution 블둝을 μΆ”κ°€ν•˜μ—¬ ν•˜μœ„ 쒅속성 버전을 μž¬μ •μ˜ν•©λ‹ˆλ‹€.

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

"moment": "2.24.0" λ₯Ό μ‚¬μš©ν•˜κ³  @rilyuκ°€ μ œμ•ˆν•œ λŒ€λ‘œ 해상도λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆλ‹€.

"2.24.0"으둜 되돌리고 "^"λ₯Ό μ œκ±°ν•˜λ©΄ μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έλ“€μ˜ μ΅œμ‹  버전이 어젯밀에 λ°€λ Έκ³  그것을 λ˜μ§€κ³  μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

"moment": "^2.24.0", λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
Uncaught Error: Cannot find module './locale' at

같은 λ¬Έμ œμž…λ‹ˆλ‹€. @enewhuis μ†”λ£¨μ…˜μœΌλ‘œ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”!

같은 λ¬Έμ œμž…λ‹ˆλ‹€. @enewhuis μ†”λ£¨μ…˜μœΌλ‘œ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ³ λ§ˆμ›Œμš”.

μ†”λ£¨μ…˜ @enewhuis 및 @rilyu와 κ΄€λ ¨λœ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”.

같은 λ¬Έμ œμž…λ‹ˆλ‹€. @enewhuis ꡬ좜 μ†”λ£¨μ…˜

λ‚˜λ₯Ό μœ„ν•΄ 깨진: "μˆœκ°„": "^2.24.0"(2.25.0으둜 ν•΄κ²°)
깨지지 μ•ŠμŒ: "μˆœκ°„": "2.24.0"

κ³ λ§ˆμ›Œμš” 맨날 이것 λ•Œλ¬Έμ— κ³ μƒν•˜κ³  μžˆμ–΄μš”

λ™μΌν•œ 였λ₯˜ 및 λ™μΌν•œ μˆ˜μ •μ΄ 여기에 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μˆœκ°„ μ‹œκ°„λŒ€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆλ‹€.

전에:

    "moment-timezone": "^0.5.28",

후에:

    "moment": "2.24.0",
    "moment-timezone": "^0.5.28",

λ™μΌν•œ 였λ₯˜ 및 λ™μΌν•œ μˆ˜μ •μ΄ 여기에 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μˆœκ°„ μ‹œκ°„λŒ€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆλ‹€.

전에:

    "moment-timezone": "^0.5.28",

후에:

    "moment": "2.24.0",
    "moment-timezone": "^0.5.28",

λ‚˜μ™€ ν•¨κ»˜ μž‘λ™ν•˜μ§€ μ•ŠμŒ -

    "moment": "2.24.0",
    "moment-timezone": "0.5.28",

μœ„μ˜ μˆ˜μ • 사항이 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ…Έλ“œ v12.6.0, 원사 v1.22.4, λ°˜μ‘ 슀크립트-ts

우리λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€

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

그리고

 "moment": "2.24.0",
  "moment-timezone": "0.5.28",

싀을 μ‚¬μš©ν•˜μ—¬

resolution 블둝 μ—†μ΄λŠ” μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

예, resolutions 블둝을 μΆ”κ°€ν•˜λŠ” 것이 νš¨κ³Όκ°€ μžˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄μœ λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ...

@mtogstad 감사

@mtogstad μ†”λ£¨μ…˜μ΄ μž‘λ™ν•©λ‹ˆλ‹€!

이 였λ₯˜κ°€ μ–΄λ–»κ²Œ λ¬΄μž‘μœ„λ‘œ λ‚˜νƒ€λ‚˜ λ°˜μ‘ 앱을 망칠 수 μžˆλŠ”μ§€ 이해가 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@bodyfarmer ν•΄κ²° 방법에 λŒ€ν•œ 단계λ₯Ό 적어 μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?
λ°˜μ‘ μ•±κ³Ό λ™μΌν•œ λ¬Έμ œμ— μ§λ©΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

@hasanmehmood 제 κ²½μš°μ—λŠ” CMDμ—μ„œ 이 λ°©μ‹μœΌλ‘œ μˆœκ°„ 쒅속성을 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λŠ” κ²ƒμœΌλ‘œ μΆ©λΆ„ν–ˆμŠ΅λ‹ˆλ‹€.

npm install [email protected]

이것이 λ‹Ήμ‹ μ—κ²Œλ„ νš¨κ³Όκ°€ 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„!
λ‚˜λŠ” μ§€λ‚œ λͺ‡ μ‹œκ°„ λ™μ•ˆ 같은 λ¬Έμ œμ— μ§λ©΄ν–ˆκ³  λ§ˆμΉ¨λ‚΄ λͺ¨λ©˜νŠΈ 버전을 λ³€κ²½ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ μ˜κ²¬μ—μ„œ μ΅œμ’… μ†”λ£¨μ…˜μ„ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

이유:
_moment 17μ‹œκ°„ μ „ 2.24.0μ—μ„œ 2.25.0으둜 μƒˆ 버전 μΆœμ‹œ_

ν•΄κ²°μ±…:
1단계: 버전 λ³€κ²½

  • "μˆœκ°„": "2.24.0",
  • "μˆœκ°„-μ‹œκ°„λŒ€": "^0.5.28",

2단계: 원사λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 λ‹€μŒκ³Ό 같이 package.json νŒŒμΌμ— 해상도λ₯Ό μΆ”κ°€ν•˜μ„Έμš”.
"쒅속성" {
"μˆœκ°„": "2.24.0",
"μˆœκ°„-μ‹œκ°„λŒ€": "^0.5.28"
},
"ν•΄κ²°μ±…": {
"μˆœκ°„": "2.24.0"
},

감사 ν•΄μš”.

@jolallaλ‹˜ κ°μ‚¬ν•©λ‹ˆλ‹€. λ¨Όμ € 버전을 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ resolution 블둝을 μΆ”κ°€ν•˜λ©΄ μ•½κ°„μ˜ λ§ˆλ²•μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. :)

λ°˜μ‘ μ•±κ³Ό μœ μ‚¬ν•œ λ¬Έμ œμ— μ§λ©΄ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄. 그듀은 그것을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒ 2 단계λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’…μ†μ„±μ—μ„œ λŒ€μ²΄
"moment": "^2.24.0",
~와 ν•¨κ»˜
"moment": "2.24.0",

그리고 package.json에 resolution 블둝을 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

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

이 λ¬Έμ œκ°€ μ™œ λ‹«ν˜”μŠ΅λ‹ˆκΉŒ!?!?!?!?

λͺ¨λ©˜νŠΈ μ‚¬μš©λŸ‰μ΄ 적은 ν•œ ν”„λ‘œμ νŠΈμ—μ„œ λ‚΄κ°€ ν•œ 일인 luxon으둜 μ „ν™˜ν•˜κΈ°μ— 쒋은 μ‹œκ°„μž…λ‹ˆλ‹€.

같은 λ¬Έμ œκ°€ 있음
"ν•΄κ²°μ±…": {
"μˆœκ°„": "2.24.0"
}
λ‚΄ 문제λ₯Ό ν•΄κ²°ν•˜μ‹­μ‹œμ˜€.
감사 ν•΄μš”.

λ‚΄κ°€ μ‹œλ„ν•  수 μžˆλŠ” λ‹€λ₯Έ 것이 μžˆμŠ΅λ‹ˆκΉŒ? "moment": "2.24.0" ,
"resolutions": { "moment": "2.24.0" }
λ‚˜λ₯Ό μœ„ν•΄ 그것을 μˆ˜μ •ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이것은 Heroku λ°°ν¬μš©μž…λ‹ˆλ‹€. μ–΄λ–€ 아이디어라도 κ°μ‚¬ν•©λ‹ˆλ‹€.

μš°μ—°νžˆ λ‹€λ₯Έ μ‚¬λžŒμ΄ monorepoλ₯Ό 가지고 μžˆλŠ” 경우(및/λ˜λŠ” package.json의 μž‘μ—… 곡간을 μ‚¬μš©ν•˜λŠ” 경우) 이전 μˆœκ°„ 릴리슀 2.24.0을 μ‚¬μš©ν•˜κΈ° μœ„ν•œ 'ν•΄κ²°μ±…' μˆ˜μ •μ€ 루트 μˆ˜μ€€ package.json에 적용된 κ²½μš°μ—λ§Œ μž‘λ™ν•©λ‹ˆλ‹€. 우리의 경우 λ‹€μŒμ„ μˆ˜ν–‰ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.
{ "ν•΄κ²°": { "**/μˆœκ°„": "2.24.0" } }.

정말 희망의 μˆœκ°„ 릴리슀 2.25κ°€ μ΅œλŒ€ν•œ 빨리 μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€!

원사λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 resolution 블둝을 μΆ”κ°€ν•˜μ—¬ ν•˜μœ„ 쒅속성 버전을 μž¬μ •μ˜ν•©λ‹ˆλ‹€.

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

λ‚˜λŠ” ν•œ μ‹œκ°„ λ™μ•ˆ 이것을 λ‹€λ£¨μ—ˆμŠ΅λ‹ˆλ‹€. ^ μ œκ±°ν•˜λ©΄ 도움이 λ©λ‹ˆλ‹€.

create-react-app을 μ‚¬μš©ν•˜κ³  CRAλ₯Ό λ°°μΆœν•˜κ³  싢지 μ•Šμ€ μ‚¬λžŒλ“€μ„ μœ„ν•΄ λ‹€μŒμ„ μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그런 λ‹€μŒ μΆ”κ°€ μž¬μ •μ˜λ₯Ό μœ„ν•΄ ν”„λ‘œμ νŠΈμ˜ 루트 디렉터리에 config-overrides.js λ₯Ό λ§Œλ“­λ‹ˆλ‹€.

module.exports = function override(config, env) {
  // do stuff with the webpack config...
  return config;
};

package.json νŽΈμ§‘:

"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",

개미 λ””μžμΈμ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— config-overrides.js λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

const { override, fixBabelImports } = require("customize-cra");
const webpack = require("webpack");

const fixMomentJs = (config) => {
  config.plugins.push(
    new webpack.ContextReplacementPlugin(/^\.\/locale$/, (context) => {
      if (!/\/moment\//.test(context.context)) {
        return;
      }
      // context needs to be modified in place
      Object.assign(context, {
        // include locales
        regExp: /^\.\/(fr|en)/,
        // point to the locale data folder relative to moment's src/lib/locale
        request: "../../locale",
      });
    })
  );
  return config;
};

module.exports = override(
  fixMomentJs,
  fixBabelImports("import", {
    libraryName: "antd",
    libraryDirectory: "es",
    style: "css",
  })
);

κ·ΈλŸ¬λ‚˜ 당신은 λ‹€μŒκ³Ό 같이 더 간단할 κ²ƒμž…λ‹ˆλ‹€.

module.exports = function override(config, env) {
  config.plugins.push(
    new webpack.ContextReplacementPlugin(/^\.\/locale$/, (context) => {
      if (!/\/moment\//.test(context.context)) {
        return;
      }
      // context needs to be modified in place
      Object.assign(context, {
        // include locales
        regExp: /^\.\/(fr|en)/,
        // point to the locale data folder relative to moment's src/lib/locale
        request: "../../locale",
      });
    })
  );
  return config;
};

@jolallaλ‹˜ κ°μ‚¬ν•©λ‹ˆλ‹€. λ¨Όμ € 버전을 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ resolution 블둝을 μΆ”κ°€ν•˜λ©΄ μ•½κ°„μ˜ λ§ˆλ²•μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. :)

λ°˜μ‘ μ•±κ³Ό μœ μ‚¬ν•œ λ¬Έμ œμ— μ§λ©΄ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄. 그듀은 그것을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒ 2 단계λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’…μ†μ„±μ—μ„œ λŒ€μ²΄
"moment": "^2.24.0",
~와 ν•¨κ»˜
"moment": "2.24.0",

그리고 package.json에 resolution 블둝을 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

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

λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•©λ‹ˆλ‹€. 감사 ν•΄μš”

@hasanmehmood 그것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€, κ³ λ§ˆμ›Œμš”

@jolallaλ‹˜ κ°μ‚¬ν•©λ‹ˆλ‹€. λ¨Όμ € 버전을 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ resolution 블둝을 μΆ”κ°€ν•˜λ©΄ μ•½κ°„μ˜ λ§ˆλ²•μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. :)

λ°˜μ‘ μ•±κ³Ό μœ μ‚¬ν•œ λ¬Έμ œμ— μ§λ©΄ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄. 그듀은 그것을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒ 2 단계λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’…μ†μ„±μ—μ„œ λŒ€μ²΄
"moment": "^2.24.0",
~와 ν•¨κ»˜
"moment": "2.24.0",

그리고 package.json에 resolution 블둝을 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

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

μ €μ—κ²Œλ„ νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€! κ°μ‚¬ν•©λ‹ˆλ‹€!! :λ””

npm이 μžˆλŠ” Angular 8 μ•±μ—μ„œ λͺ‡ μ‹œκ°„ λ™μ•ˆ 이 μž‘μ—…μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

  1. λ‚˜λŠ” μˆœκ°„ 2.17μ—μ„œ 2.24둜 μ—…λ°μ΄νŠΈν–ˆμŠ΅λ‹ˆλ‹€.
  2. μœ„μ—μ„œ μ‘°μ–Έν•œ λŒ€λ‘œ 해상도λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€ - "devDependencies": {...},"resolutions": { "moment": "2.24.0" } to package.json
  3. λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ—¬ yarn으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. rm -rf node_modules package-lock.json && yarn
    κ³ λ§ˆμ›Œ μ–˜λ“€μ•„

λ‚˜λŠ” 맀우 μ ˆλ§μ μž…λ‹ˆλ‹€ ... λ‚˜λŠ” μˆœκ°„ 2.25.1을 μ‚¬μš©ν•˜κ³  "devDependencies": {...},"resolutions": { "moment": "2.25.1" }λ₯Ό μœ„μ™€ 같이 λ³€κ²½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€... μ•„λ‹™λ‹ˆλ‹€ μΌν•˜κ³ μžˆλŠ”

λ‚˜λŠ” npm을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” devDependenciesκ°€ 어디에 μžˆμŠ΅λ‹ˆκΉŒ?
λ‚˜λŠ” 이것을 λ³€κ²½ν–ˆμ§€λ§Œ μ—¬μ „νžˆ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€
Capture

μ €λŠ” "2.25.1" 버전을 μ‚¬μš©ν•˜κ³  있으며 μ—¬μ „νžˆ λ°œμƒν•©λ‹ˆλ‹€!

@m4mariaoni - --save-dev 없이 μ„€μΉ˜ν–ˆκΈ° λ•Œλ¬Έμ— μ˜¬λ°”λ₯Έ 뢀뢄을 λ³€κ²½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μˆœκ°„μ„ 2.24.0으둜 잠근 후에도 이 λ¬Έμ œκ°€ 계속 λ°œμƒν•˜λ©΄ node_modulesμ—μ„œ moment 폴더λ₯Ό μ œκ±°ν•˜κ³  npm install --save νŒ¨ν‚€μ§€λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.

@jolallaλ‹˜ κ°μ‚¬ν•©λ‹ˆλ‹€. λ¨Όμ € 버전을 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ resolution 블둝을 μΆ”κ°€ν•˜λ©΄ μ•½κ°„μ˜ λ§ˆλ²•μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. :)

λ°˜μ‘ μ•±κ³Ό μœ μ‚¬ν•œ λ¬Έμ œμ— μ§λ©΄ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄. 그듀은 그것을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒ 2 단계λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’…μ†μ„±μ—μ„œ λŒ€μ²΄
"μˆœκ°„": "^2.24.0",
~와 ν•¨κ»˜
"μˆœκ°„": "2.24.0",

그리고 package.json에 resolution 블둝을 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

"ν•΄κ²°μ±…": {
"μˆœκ°„": "2.24.0"
}

μ €μ—κ²Œλ„ νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€! κ°μ‚¬ν•©λ‹ˆλ‹€!! :D!생각해!

@jolallaλ‹˜ κ°μ‚¬ν•©λ‹ˆλ‹€. λ¨Όμ € 버전을 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ resolution 블둝을 μΆ”κ°€ν•˜λ©΄ μ•½κ°„μ˜ λ§ˆλ²•μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. :)

λ°˜μ‘ μ•±κ³Ό μœ μ‚¬ν•œ λ¬Έμ œμ— μ§λ©΄ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄. 그듀은 그것을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒ 2 단계λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’…μ†μ„±μ—μ„œ λŒ€μ²΄
"moment": "^2.24.0",
~와 ν•¨κ»˜
"moment": "2.24.0",

그리고 package.json에 resolution 블둝을 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

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

ꡐ체

"moment": "^2.24.0",

~와 ν•¨κ»˜

"moment": "2.24.0",

λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•©λ‹ˆλ‹€! 보톡,
rm -rf package-lock.json && node_modules

μœ„μ˜ λͺ¨λ“  쑰치λ₯Ό μ·¨ν–ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  μ—¬μ „νžˆ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ ...

λ‹΅λ‹΅ν•˜λ‹€

이전에 μƒμ„±ν•œ λ ˆνŒŒμ§€ν† λ¦¬λŠ” moment 2.24.0을 React와 ν•¨κ»˜ μ‚¬μš©ν–ˆκ³ , μ—¬μ „νžˆ μž‘λ™ν•˜μ§€λ§Œ μ§€κΈˆ moment2.24.0을 μ„€μΉ˜ν•˜λ©΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.... (μœ„μ˜ λͺ¨λ“  쑰치λ₯Ό μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€.)

원인은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

package.json @wlsdud2194의 μ–΄λ”˜κ°€μ— 2.24.0 λŒ€μ‹  ^2.24.0이 μžˆμ„ 수 μžˆλ‹€κ³  μƒμƒν•˜μ‹­λ‹ˆκΉŒ?

λ‚˜λŠ” 그렇지 μ•Šκ³  μ—¬μ „νžˆ 였λ₯˜κ°€ 계속 λ°œμƒν•©λ‹ˆλ‹€. 이상해

μˆœκ°„ 버전은 λ‚΄κ°€ μ„€μΉ˜ν•œ μ΄ν›„μ˜ ^2.24.0 λŒ€μ‹  package.json의 2.24.0 μž…λ‹ˆλ‹€.

λ‚˜λŠ” μœ„μ˜ 쑰치 쀑 ν•˜λ‚˜μΈ 이 과정을 λ”°λžλ‹€.

  1. 해상도 블둝 μΆ”κ°€
  2. node_modules 디렉토리λ₯Ό μ œκ±°ν•˜κ³  μ›μ‚¬μ—μ„œ νŒ¨ν‚€μ§€λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.

λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€λ§Œ μž‘λ™ν•˜λŠ” 이유λ₯Ό λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€ ...πŸ˜‚

λ§Žμ€ 관심 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€ :) @agrohs

문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ ^2.25.1 μ—μ„œ 2.24.0 둜 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 그렇지 μ•Šκ³  μ—¬μ „νžˆ 였λ₯˜κ°€ 계속 λ°œμƒν•©λ‹ˆλ‹€. 이상해

npm ls moment λ₯Ό μ‹€ν–‰ν•˜μ—¬ λ‹€λ₯Έ λͺ¨λ“ˆλ„ momentλ₯Ό μ‚¬μš©ν•˜λŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.

그리고 package.json에 resolution 블둝을 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
"ν•΄κ²°μ±…": {"μˆœκ°„": "2.24.0"}

node_modules 디렉토리λ₯Ό μ œκ±°ν•˜κ³  μ›μ‚¬μ—μ„œ νŒ¨ν‚€μ§€λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.

rm -rf νŒ¨ν‚€μ§€-lock.json && node_modules

μ—°λ½μ²˜: Mr. Liu μ „ν™”: 18908205973
팩슀: 028-86676917
이메일: [email protected]
νšŒμ‚¬λͺ…: Chengdu Shouzhi Technology Co., Ltd. νšŒμ‚¬ μ›Ήμ‚¬μ΄νŠΈ: www.szdma.com
μ£Όμ†Œ: 청두 빈μž₯ λ™λ‘œ 162호 μΈν•˜μ΄ λΉŒλ”©


Chengdu Shouzhi Technology Co., Ltd.λŠ” 2010년에 μ„€λ¦½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.청두에 μžˆλŠ” μ€‘μ†ŒκΈ°μ—…μ„ μœ„ν•œ μ „λ¬Έ μ†Œν”„νŠΈμ›¨μ–΄ μ‚¬μš©μž μ •μ˜ 개발 νšŒμ‚¬μž…λ‹ˆλ‹€.이 νšŒμ‚¬λŠ” 주둜 μ€‘μ†ŒκΈ°μ—…μ— μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λ©° 근거리 톡신망 ꡬ좕, μ›Ή μ‚¬μ΄νŠΈλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 건섀, μ†Œν”„νŠΈμ›¨μ–΄ μ‚¬μš©μž μ •μ˜ μ†”λ£¨μ…˜ 등을 μ œκ³΅ν•˜κ³  μˆ˜λ™ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 컴퓨터 λΉ„μ¦ˆλ‹ˆμŠ€μ— λŒ€ν•œ μ™„μ „ν•œ μ„œλΉ„μŠ€ μ„ΈνŠΈ. νšŒμ‚¬λŠ” νšŒμ‚¬μ˜ 이미지λ₯Ό κ°•μ‘°ν•˜κΈ° μœ„ν•΄ "μ²­λ ΄ 기반, μ„œλΉ„μŠ€ 지ν–₯"의 원칙을 κ³ μˆ˜ν•˜λ©° λŠμž„μ—†λŠ” λ…Έλ ₯을 톡해 κ³ κ°μ—κ²Œ κ³ ν’ˆμ§ˆ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

Webpack Error: Cannot find module "./locale" 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” 'react-i18nify'에 μ˜μ‘΄ν•˜κ³  μ°¨λ‘€λ‘œ 'moment'에 μ˜μ‘΄ν•˜λŠ” 'react-redux-i18n' νŒ¨ν‚€μ§€λ₯Ό ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚΄λΆ€μ μœΌλ‘œ 'μˆœκ°„'은 이 였λ₯˜λ₯Ό μΌμœΌν‚€λŠ” μ΅œμ‹  버전을 μ‚¬μš©ν•˜λ„λ‘ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

npm

쒅속성
"λ°˜μ‘": "^16.8.1",
"μˆœκ°„": "2.24.0",
"μˆœκ°„-μ‹œκ°„λŒ€": "^0.5.28",
"λ°˜μ‘ μˆœκ°„ μ†Œν’ˆ μœ ν˜•": "^1.5.0",
"λ°˜μ‘ redux-i18n": "^1.9.3",
"λ°˜μ‘ redux": "^6.0.0",

도움을 μ£Όμ‹œλ©΄ λŒ€λ‹¨νžˆ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ΅œμ‹  패치 2.25.3μ—μ„œ μˆ˜μ •ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. momentjs 버전을 "moment": "^2.25.3" in package.json으둜 μ—…λ°μ΄νŠΈν•˜μ‹­μ‹œμ˜€.
node_modules 폴더λ₯Ό μ œκ±°ν•˜κ³  yarn install λ˜λŠ” npm install λ₯Ό μ‹€ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€.

μˆœκ°„μ— μžμ‹ κ°μ„ μžƒμ—ˆκ³  μ•žμœΌλ‘œ μ΄λŸ¬ν•œ λ¬Έμ œκ°€ λ‹€μ‹œ λ°œμƒν•˜μ—¬ 앱이 μ™„μ „νžˆ λ§κ°€μ§€λŠ” 것을 μ›ν•˜μ§€ μ•ŠλŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ 큰 문제 없이 쀑간 크기의 μ½”λ“œλ² μ΄μŠ€λ₯Ό luxon으둜 μ „ν™˜ν–ˆμŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€ μ—¬λŸ¬λΆ„...

버전을 24.0으둜 λ³€κ²½ν•˜κ³  "해상도": { "moment": "2.24.0" }λ₯Ό μΆ”κ°€ν•˜κ³  npm install을 μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

그런 λ‹€μŒ λ‹€μ‹œ μž‘λ™ν•˜λŠ” 것 κ°™μ•˜μŠ΅λ‹ˆλ‹€(그런데 React둜 μž‘μ—…).

건배!

μ΅œμ‹  패치 2.25.3μ—μ„œ μˆ˜μ •ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. momentjs 버전을 "moment": "^2.25.3" in package.json으둜 μ—…λ°μ΄νŠΈν•˜μ‹­μ‹œμ˜€.
node_modules 폴더λ₯Ό μ œκ±°ν•˜κ³  yarn install λ˜λŠ” npm install λ₯Ό μ‹€ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€.

@jasontll κ°μ‚¬ν•©λ‹ˆλ‹€. μ €μ—κ²Œ νš¨κ³Όμ μž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ†”λ£¨μ…˜ 쀑 μ–΄λŠ 것도 였늘 μ €μ—κ²Œ νš¨κ³Όκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ λ°˜μ‘ μ•±μ—μ„œ λͺ‡ μ‹œκ°„ λ™μ•ˆ 이 μž‘μ—…μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
npm으둜.

1. I updated from moment  2.17 to 2.24

2. I added the resolutions as adviced above - `"devDependencies": {...},"resolutions": { "moment": "2.24.0"   }` to package.json

3. Changed to yarn by doing the following. `rm -rf node_modules package-lock.json && yarn`
   Thanks a lot guys

그것은 λ˜ν•œ μ‚¬λžŒλ“€μ„ μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€ :-)

λ‚˜λ„ 이 κ³ λ―Ό μ†μ—μ„œ 달린닀. "moment": "^2.26.0" 의 μ΅œμ‹  λ²„μ „μœΌλ‘œ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰