错误: 找不到模块 'react-dev-utils/getPublicUrlOrPath'

7
我有一个React.js应用程序,已部署在Heroku上。然后我收到了以下消息:

Browserslist:caniuse-lite已过时,请运行下一个命令npm update

因此,我运行了 npm updatenpm audit fix。再次推送到Heroku时,我遇到了这个错误:

Error: Cannot find module 'react-dev-utils/getPublicUrlOrPath'

这是我运行 git push heroku master 时收到的结果:
remote: -----> Buildremote:        Running build
remote:        
remote:        > products-management@0.1.0 build /tmp/build_3b9104b8c72e292510eb4a5bd0494704
remote:        > react-scripts build
remote:        
remote: internal/modules/cjs/loader.js:960
remote:   throw err;
remote:   ^
remote: 
remote: Error: Cannot find module 'react-dev-utils/getPublicUrlOrPath'
remote: Require stack:
remote: - /tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/config/paths.js
remote: - /tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/config/env.js
remote: - /tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/scripts/build.js
remote:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
remote:     at Function.Module._load (internal/modules/cjs/loader.js:840:27)
remote:     at Module.require (internal/modules/cjs/loader.js:1019:19)
remote:     at require (internal/modules/cjs/helpers.js:77:18)
remote:     at Object.<anonymous> (/tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/config/paths.js:13:28)
remote:     at Module._compile (internal/modules/cjs/loader.js:1133:30)
remote:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
remote:     at Module.load (internal/modules/cjs/loader.js:977:32)
remote:     at Function.Module._load (internal/modules/cjs/loader.js:877:14)
remote:     at Module.require (internal/modules/cjs/loader.js:1019:19) {
remote:   code: 'MODULE_NOT_FOUND',
remote:   requireStack: [
remote:     '/tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/config/paths.js',
remote:     '/tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/config/env.js',
remote:     '/tmp/build_3b9104b8c72e292510eb4a5bd0494704/node_modules/react-scripts/scripts/build.js'
remote:   ]
remote: }
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! products-management@0.1.0 build: `react-scripts build`
remote: npm ERR! Exit status 1
remote: npm ERR! 
remote: npm ERR! Failed at the products-management@0.1.0 build script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote: 
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR!     /tmp/npmcache.qnMyP/_logs/2020-05-07T07_23_33_937Z-debug.log
remote: 
remote: -----> Build failed
remote:        
remote:        We're sorry this build is failing! You can troubleshoot common issues here:
remote:        https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:        
remote:        Some possible problems:
remote:        
remote:        - node_modules checked into source control
remote:          https://blog.heroku.com/node-habits-2016#9-only-git-the-important-bits
remote:        
remote:        - Node version not specified in package.json
remote:          https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
remote:        
remote:        Love,
remote:        Heroku 
remote:  !     Push rejected, failed to compile Node.js app. 
remote:  !     Push failed`enter code here`
4个回答

8

尝试使用

npm install --save-dev react-dev-utils

这对我每次都有效。


4

虽然不是在Heroku上,我也遇到了相同的getPublicUrlOrPath错误。我尝试了多次npm-install,但由于一个错误的依赖导致404错误,所以我从package.json中删除了它,删除了文件package-lock.json,然后运行了npm install --save,之后一切正常。


3
在运行了npm audit fix --force命令后,我遇到了这个问题。这个答案解决了这个问题。 - klequis

3

在运行npm audit fix --force命令后,我遇到了相同的问题,该命令最终在package.json文件中创建了一个devDependency:

"devDependencies": {
  "compression-webpack-plugin": "^8.0.0",
  "react-dev-utils": "^12.0.0",
  "webpack-dev-middleware": "^3.7.3",
  "webpack-hot-middleware": "^2.25.1"
}

为了解决这个问题:
  1. I removed node_modules, package.json.

  2. Removed other dependencies created under devDependency and left only:

    "devDependencies": {
      "compression-webpack-plugin": "^8.0.0"
    }
    
  3. lastly I ran npm install --force

那解决了我的Ubuntu问题。

0

我最近遇到了这个问题,因为服务器上的node版本与我本地安装的版本不同。我添加了“n 16.17.0”以检查服务器上预期的版本,然后错误消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接