Moment: Obtention d'une erreur Webpack après la mise à jour vers 2.19.0

Créé le 10 oct. 2017  ·  23Commentaires  ·  Source: moment/moment

Je ne sais pas si c'est lié à # 4216 parce que j'utilise Angular 4.4.4 et c'est un problème React , donc je poste ceci comme un problème séparé.

J'ai l'erreur suivante après la mise à jour :

__WEBPACK_IMPORTED_MODULE_2_moment__ is not a function

J'utilise les packages moment suivants

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

Le code où j'obtiens l'erreur est assez simple:

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

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

...

Commentaire le plus utile

Pareil ici. Ne pas utiliser Angular ou React. Ceci est mon erreur webpack:

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

Tous les 23 commentaires

+1 - Même problème avec Angular 4

Pareil ici. Ne pas utiliser Angular ou React. Ceci est mon erreur webpack:

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

Même problème avec vuejs et webpack.

Idem ici avec webpack, bien que le problème soit déclenché par moment-timezone. Nous avons changé la dépendance de "moment": "^2.18.1" à "moment": "~2.18.1"

même problème lors de la mise à niveau vers la version 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

Même problème ici avec 2.19.0

Même problème sur cette version 2.19.0

Cette version ( 2.19.0 doit être corrigée )
pour le 'moment' ahahah, installez le 2.18.1
"moment": "~2.18.1"

Même problème ici 😢 Nous rétrograderons à 2.18 jusqu'à ce que cela soit résolu.

Même problème ici...

réagir erreur webpack

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 - en tant que communauté, nous n'autorisons pas les jurons sur les formulaires, votre commentaire a donc été mis à jour. Merci de vous abstenir à l'avenir.

J'ai eu celui-ci après la mise à niveau vers 2.19...

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

TypeError: contextRegExp.test is not a function

Et utiliser le plugin ignore pour ignorer les paramètres régionaux sur mon fichier de configuration webpack :

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

Verrouiller la version de moment dans package.json aidera :

"moment": "2.18.0"

Cependant, si la dernière version de moment (2.19.0) est tirée par vos dépendances, ce qui précède ne fonctionnera pas (exécutez find ./node_modules/*/node_modules -iname moment pour vérifier d'autres versions de moment dans votre application)

Vous pouvez à la place utiliser des externes webpack :

  • Ajoutez du moment à la configuration de votre webpack externe :
+            externals: {
+                moment: 'moment',
+            },
  • Utilisez le fichier moment.js de CDN - placez-le dans votre fichier index.html (ou index.ejs) :
    <script src="https://momentjs.com/downloads/moment.min.js"></script>

Rétrogradé à ~2.18.0 , ce qui contourne cela pour le moment.

Voici une étape de reproduction qui fonctionne pour moi. Je suppose que vous avez create-react-app installé globalement :

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

Mettez à jour src/app.js avec quelque chose comme :

 import '.App.css';

+ import moment from 'moment'

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

Puis

> npm run start 

Attendez-vous à ce que le site Web se charge.

Réel, échoue avec une erreur : Impossible de résoudre l'erreur './locale'.

Contexte supplémentaire, fonctionne après avoir fait

> npm install [email protected] 

C'est intéressant. Je viens de mettre à jour mon propre code sur lequel je travaille pour mon travail et j'ai lancé Webpack. Autant que je sache, j'ai la dernière de toutes les dépendances de webpack (il y en a plusieurs, et je n'en ai vérifié que quelques-unes), et le moment 2.19.0, et tout va bien.

Je vais essayer ce chemin create-react-app ensuite.

Ce n'était pas une matinée très heureuse avec cette erreur !

Idem sur cette erreur.

npm install --save [email protected]

Cela résout le problème pour le moment. 2.19.0 me donnait la même erreur il y a environ 2 heures.
Rétrogradé à la version 2.18.1 et cela a bien fonctionné.

Nous pouvons également corroborer ce scénario.

2.19.0 a cassé notre version de production :(. Revenir à 2.18.1 semble bien fonctionner.

Clôture en double de # 4216 - piste là-bas.

Cette page vous a été utile?
0 / 5 - 0 notes