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)
...
+ 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の外部を使用できます。
+ externals: {
+ moment: 'moment',
+ },
<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の複製として閉じる-そこで追跡します。
最も参考になるコメント
こっちも一緒。 AngularまたはReactを使用していません。 これは私のwebpackエラーです: