[英]create-react-app Error: Cannot find module 'react-scripts/scripts/init.js'
[英]Create-React-App with Moment JS: Cannot find module “./locale”
剛剛在我的 Web 應用程序上運行了npm update
,現在Moment JS似乎失敗並顯示以下消息:
Error: Cannot find module "./locale"
\node_modules\moment\src\lib\moment\prototype.js:1
> 1 | import { Moment } from './constructor';
不確定更新之前我使用的是哪個版本的Moment JS ,但我的應用程序已經運行了幾個月。
我創建了另一個 react 應用程序並運行了npm install moment --save
並修改了源代碼以顯示時間並最終出現上述相同的錯誤。
不確定是否有一種防故障方法可以使用Create-React-App集成Moment JS,目前還沒有彈出來自己管理 webpack 設置,但我真的不想這樣做。 還有其他人看到這些問題或取得成功嗎? 如果是這樣,寫一篇簡短的文章將有助於提供幫助。
看來這已經被確定為Moment JS 2.19 版的問題。 如果您已升級到 2.19,請運行npm install moment@2.18.1
以恢復到以前的版本,直到它被修復!
使用 Create React App 和 Moment 2.24.0 構建的應用程序,以下似乎工作正常:
import moment from 'moment';
import 'moment/min/locales';
而不是直接導入moment-with-locales
。 或者,也可以只導入所需的語言環境:
import moment from 'moment';
import 'moment/locale/fr';
import 'moment/locale/ru';
上面的答案,雖然我毫不懷疑對某些人有用,但對我不起作用。 我找到的解決方案相當快速和簡單,但比簡單的降級要復雜一些。
這個問題源於 webpack,可以用 webpack 修復。 所以我們將不得不在我們的 webpack.config.js 文件中添加幾行代碼。 如果你還沒有,你可以在根 webpack 目錄中添加一個:
YOURAPPNAME/node-modules/webpack/
所以現在你在你的 webpack.config.js 文件中,你需要添加幾行代碼。 只需將其復制並粘貼到新文件中或將其調整為您在 webpack.config.js 中已有的代碼。
module.exports = {
resolve: {
alias: {
moment$: 'moment/moment.js'
}
}
};
您在 index.js(或其他名稱)文件中的 import 語句應如下所示:
import moment from 'moment'
您現在應該可以完全正常使用 moment。 例如:
var tomorrow = moment().add(1, "day")
如果您有全新安裝或升級到 2.25 並且現在收到此警告,請嘗試強制您的所有軟件包使用 2.24。
更新:已報告新版本 2.25.3解決了這個問題! 嘗試先更新。
如果您依賴某個尚未升級的庫,請告訴他們升級。 同時,如果您需要 2.25,您也可以強制您的子依賴項使用此版本。
如果您使用yarn
將這些行添加到 package.json
"resolutions": {
"**/moment": ">=2.25.3"
},
這將被添加到頂層的packages.json 中,即與“依賴項”具有相同的縮進。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.