Module not found: Can't resolve 'aws-sdk' when import nodejieba to react

Issue

I run into this error when my script import nodejieba.
It named 「Module not found: Can’t resolve ‘aws-sdk’ in ‘C:\Users\user\Documents\cchatbigdata\node_modules@mapbox\node-pre-gyp\lib\util’」
At first, the react run well and my script work fine.
then I npm install nodejieba –save-dev
and add import nodejieba from ‘nodejieba’ in my TestedData.js.
even if I don’t use nodejieba’s function, my react ran into this error.
I start to search related question about Can’t resolve ‘aws-sdk’.
most of them encountering this error when using webpack, but I don’t use webpack, I just import nodejieba.
I try to understand node-pre-gyp\lib\util under the node_modules.
but it created by React(I using npx create-react-app), so I think if changing the file react may shutdown.
I think something wrong between react and nodejieba.
My browser show those errors, I found they all related to node-pre-gyp\lib\util.

./node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js
Module not found: Can't resolve 'aws-sdk' in 'C:\Users\kevin\Documents\cchatbigdata\node_modules\@mapbox\node-pre-gyp\lib\util'
console.<computed> @ index.js:1
handleErrors @ webpackHotDevClient.js:174
push../node_modules/react-dev-utils/webpackHotDevClient.js.connection.onmessage @ webpackHotDevClient.js:213
index.js:1 
./node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js
Module not found: Can't resolve 'mock-aws-s3' in 'C:\Users\kevin\Documents\cchatbigdata\node_modules\@mapbox\node-pre-gyp\lib\util'
console.<computed> @ index.js:1
handleErrors @ webpackHotDevClient.js:174
push../node_modules/react-dev-utils/webpackHotDevClient.js.connection.onmessage @ webpackHotDevClient.js:213
index.js:1 
./node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js
Module not found: Can't resolve 'nock' in 'C:\Users\kevin\Documents\cchatbigdata\node_modules\@mapbox\node-pre-gyp\lib\util'
console.<computed> @ index.js:1
handleErrors @ webpackHotDevClient.js:174
push../node_modules/react-dev-utils/webpackHotDevClient.js.connection.onmessage @ webpackHotDevClient.js:213

Maybe node-pre-gyp under the node_modules must to be fixed.
Here is my TestData.js

import {useState, useEffect} from 'react';
import nodejieba from 'nodejieba'; //this line make me run into this error!
...

Thank for your reading and help!

Solution

Run npm install util

I don’t believe this error has anything to do with nodejieba. You used npx create-react-app and it must be using Webpack 5 now, which does not include polyfills for node.js anymore. An alternate solution is to use https://www.npmjs.com/package/node-polyfill-webpack-plugin but I liked installing just the single util package for my use case.

Answered By – Trevor Allred

Answer Checked By – David Marino (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.