Moment: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ошибки Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π° послС обновлСния Π΄ΠΎ 2.19.0

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 10 ΠΎΠΊΡ‚. 2017  Β·  23ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: moment/moment

НС знаю, связано Π»ΠΈ это с #4216, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Angular 4.4.4 , Π° это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° React , поэтому я ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ это ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ПослС обновлСния Ρƒ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ошибка:

__WEBPACK_IMPORTED_MODULE_2_moment__ is not a function

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ moment

"moment": "2.19.0",
"@types/moment": "2.13.0",   

Код, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, довольно прост:

import * as moment from 'moment';
...

  if (moment().year() !== this.mainData.activeYear)

...

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’ΠΎ ΠΆΠ΅ самоС. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Angular ΠΈΠ»ΠΈ React. Π­Ρ‚ΠΎ моя ошибка Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

WARNING in ./~/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/data/jenkins/workspace/project/node_modules/moment/src/lib/locale'
./~/moment/src/lib/locale/locales.js 65:16-60
./~/moment/src/lib/locale/locale.js
./~/moment/src/moment.js
./script.js

ВсС 23 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

+1 - Π’Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Angular 4

Π’ΠΎ ΠΆΠ΅ самоС. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Angular ΠΈΠ»ΠΈ React. Π­Ρ‚ΠΎ моя ошибка Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

WARNING in ./~/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/data/jenkins/workspace/project/node_modules/moment/src/lib/locale'
./~/moment/src/lib/locale/locales.js 65:16-60
./~/moment/src/lib/locale/locale.js
./~/moment/src/moment.js
./script.js

Π’Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с vuejs ΠΈ webpack.

Π’ΠΎ ΠΆΠ΅ самоС здСсь с Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, хотя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π·Π²Π°Π½Π° часовым поясом ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ с "moment": "^2.18.1" Π½Π° "moment": "~2.18.1"

такая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎ вСрсии 2.19.0
WARNING in ./~/[email protected]@moment/src/lib/locale/locales.js Module not found: Error: Can't resolve './locale' in '/Users/XXX/code/gitlab/web-editor/node_modules/[email protected]@moment/src/lib/locale' @ ./~/[email protected]@moment/src/lib/locale/locales.js 65:16-60 @ ./~/[email protected]@moment/src/lib/locale/locale.js @ ./~/[email protected]@moment/src/moment.js @ ./~/[email protected]@antd/lib/calendar/index.js @ ./~/[email protected]@antd/lib/index.js @ dll lib

Π’Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с 2.19.0

Π’Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² этой вСрсии 2.19.0

Π­Ρ‚Π° вСрсия (2.19.0 Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ исправлСна)
Π½Π° "ΠΌΠΎΠΌΠ΅Π½Ρ‚" Π°Ρ…Π°Ρ…Π°Ρ…, установитС 2.18.1
"ΠΌΠΎΠΌΠ΅Π½Ρ‚": "~2.18.1"

Π’Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° здСсь 😒 ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ вСрсии 2.18, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°.

Π—Π΄Π΅ΡΡŒ Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°...

Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π°

WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in 'blahblahblah/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/client/components/ArticlesGrid/index.js
 @ ./src/client/containers/StuffPage/index.js
 @ ./src/client/routes.jsx
 @ ./src/client/index.js
 @ multi (webpack)-dev-server/client?http://0.0.0.0:8050 webpack/hot/dev-server babel-polyfill ./src/client/index.js

@mymtw - ΠΊΠ°ΠΊ сообщСство, ΠΌΡ‹ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ…, поэтому ваш ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²ΠΎΠ·Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ΡΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ» это послС обновлСния Π΄ΠΎ 2.19...

node_modules/webpack/lib/IgnorePlugin.js:20
                    (!contextRegExp || contextRegExp.test(result.context))) {
                                                     ^

TypeError: contextRegExp.test is not a function

И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ»Π°Π³ΠΈΠ½ ignore, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ webpack:

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

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° вСрсии ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² package.json ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚:

"moment": "2.18.0"

Однако, Ссли ваши зависимости ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° (2.19.0), Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (запуститС find ./node_modules/*/node_modules -iname moment , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ).

ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшниС Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ внСшнСго Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π°:
+            externals: {
+                moment: 'moment',
+            },
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» moment.js ΠΈΠ· CDN β€” помСститС Π΅Π³ΠΎ Π² свой Ρ„Π°ΠΉΠ» index.html (ΠΈΠ»ΠΈ index.ejs):
    <script src="https://momentjs.com/downloads/moment.min.js"></script>

ПониТСн Π΄ΠΎ ~2.18.0 , Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это.

Π’ΠΎΡ‚ шаг воспроизвСдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для мСня. Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ Ρƒ вас глобально установлСно create-react-app :

> create-react-app my-app
> cd my-app
> # Prove the app it working correctly
> npm run start 
> npm install moment

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ src/app.js , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 import '.App.css';

+ import moment from 'moment'

class App extends Component {
 </p>
+<p>
+ Today is {moment().format()}
+</p>
 </div>

ΠΏΠΎΡ‚ΠΎΠΌ

> npm run start 

ΠžΠΆΠΈΠ΄Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π΅Π±-сайта.

ЀактичСски, происходит сбой с ошибкой: Π½Π΅ удаСтся ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«./localeΒ».

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ контСкст, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ послС выполнСния

> npm install [email protected] 

Π­Ρ‚ΠΎ интСрСсно. Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΌΠΎΠΌΠ΅Π½Ρ‚ своСго собствСнного ΠΊΠΎΠ΄Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΈ запустил webpack. Насколько я ΠΌΠΎΠ³Ρƒ ΡΡƒΠ΄ΠΈΡ‚ΡŒ, Ρƒ мСня самая послСдняя ΠΈΠ· всСх зависимостСй Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠΈΡ… нСсколько, ΠΈ я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅), ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ 2.19.0, ΠΈ всС Π² порядкС.

Π”Π°Π»Π΅Π΅ я ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ этот ΠΏΡƒΡ‚ΡŒ создания-Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ-прилоТСния.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ счастливоС ΡƒΡ‚Ρ€ΠΎ с этой ошибкой!

Π’ΠΎ ΠΆΠ΅ самоС с этой ошибкой.

npm install --save [email protected]

Π­Ρ‚ΠΎ устраняСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π° врСмя. 2.19.0 Π²Ρ‹Π΄Π°Π²Π°Π» Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎΠΊΠΎΠ»ΠΎ 2 часов Π½Π°Π·Π°Π΄.
Понизил Π΄ΠΎ вСрсии 2.18.1 ΠΈ всС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ этот сцСнарий.

2.19.0 сломал Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ сборку :(. Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ 2.18.1, каТСтся, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ #4216 - ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ