今天使用某個React package時,碰到以下問題

Module not found: Error: Can't resolve 'tty' in 'C:\React Projects\webpack_test\node_modules\react-jsonschema-form-material-ui\dist'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
    - add a fallback 'resolve.fallback: { "tty": require.resolve("tty-browserify") }'
    - install 'tty-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
    resolve.fallback: { "tty": false }

 

解決方法:
1. 安裝缺少的套件
缺什麼就安裝什麼,以上面的錯誤訊息為例,找不到tty這個模組
執行npm install tty去安裝這個模組

2. 修改webpack.config.js
如果使用方法1安裝後還是不行的話,代表它改成其他模組了
要依照錯誤提示裡所說,去修改專案裡的webpack.config.js
路徑:node_modules > react-scripts > config > webpack.config.js
這個檔案很長,搜尋關鍵字 “fallback” 可以直接到改的地方
在resolve底下加入fallback: { "tty": require.resolve("tty-browserify") }
當然,記得要安裝tty-browserify,不然還是找不到
或是不需要這個模組,就在resolve底下加入fallback: { "tty": false }
 

arrow
arrow

    讀樂島主 發表在 痞客邦 留言(0) 人氣()