Moment: 2.19.0へのアップデート後にwebpackエラーが発生する

作成日 2017年10月10日  ·  23コメント  ·  ソース: moment/moment

Angular 4.4.4を使用していて、それがReactの問題であるため、#4216に関連しているかどうかわからないので、これを別の問題として投稿します。

更新後に次のエラーが発生しました。

__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を使用していません。 これは私の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

全てのコメント23件

+ 1-Angular4と同じ問題

こっちも一緒。 AngularまたはReactを使用していません。 これは私の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

vuejsとwebpackでも同じ問題が発生します。

ここではwebpackでも同じですが、問題はmoment-timezoneによってトリガーされます。 依存関係を"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は修正する必要があります)
'moment' ahahahの場合は、2.18.1をインストールします
「瞬間」:「〜2.18.1」

ここで同じ問題が発生します😢これが解決されるまで、2.18にダウングレードします。

ここで同じ問題...

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-コミュニティとして、フォームへの冒とくは許可されていないため、コメントが更新されました。 今後はご遠慮ください。

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を実行して、アプリ内の他のバージョンのモーメントを確認してください)

代わりに、webpackの外部を使用できます。

  • 外部のWebpack構成に瞬間を追加します。
+            externals: {
+                moment: 'moment',
+            },
  • CDNのmoment.jsファイルを使用します-これを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を開始しました。 私が知る限り、すべてのWebpack依存関係の最新のもの(いくつかあり、いくつかチェックしただけです)と瞬間2.19.0があり、すべてが正常です。

次に、このcreate-react-appパスを試してみます。

これは、このエラーであまり幸せな朝ではありませんでした!

このエラーについても同様です。

npm install --save [email protected]

これにより、当面の間問題が修正されます。 2.19.0では、約2時間前に同じエラーが発生していました。
バージョン2.18.1にダウングレードし、正常に動作しました。

このシナリオを裏付けることもできます。

2.19.0は本番ビルドを壊しました:(。2.18.1に戻すと正常に動作しているようです。

#4216の複製として閉じる-そこで追跡します。

このページは役に立ちましたか?
0 / 5 - 0 評価