React.js エラー「npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! projectname@0.1.0 start: react-scripts start」が発生した場合の対応方法

npm start実行時に発生。原因はハッキリとはわかりませんが、再現はできたので対処法を記述してます。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- node V13.11.0
- npm 6.14.3
- React 16.13.0
react.js環境構築
create-react-appで構築してます。
エラー全文
npm start
<出力結果>
> projectname@0.1.0 start /home/user/projectname
> react-scripts start
require(...) is not a function
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! projectname@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the projectname@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/user/.npm/_logs/debug.log
原因
調べてみると「http-proxy-middleware」をインストール後に、npm start実行時に発生。
http-proxy-middlewareをインストール
npm i http-proxy-middleware
setupProxy.jsを下記の内容で記述
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(proxy("/api/v1/version", { target: "https://192.168.xxx.xxx:8080" }));
a
};
npm start実行すると、エラーが発生する
対応方法
モジュールを削除して、再度インストール前に、http-proxy-middlewareを使用しなけけばエラーは発生しなくなる
package.jsonから「”http-proxy-middleware”: “^1.0.3”,」を削除します。
変更前
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"axios": "^0.19.2",
"http-proxy-middleware": "^1.0.3",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "^3.4.1"
},
変更後
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"axios": "^0.19.2",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "^3.4.1"
},
node_modulesとpackage-lock.json削除してcacheも削除に再度インストールすれば、エラーは発生しなくなりました。
rm -rf node_modules && rm ./package-lock.json && npm cache clean --force && npm install
どうも、create-react-app時に「node_modules」内には「http-proxy-middleware」が入っているので、それが原因だった気がします。
-
前の記事
React.js Axios利用時にCORSによるブロックを回避する方法 2020.03.27
-
次の記事
FerenOS php7.4をインストールする 2020.03.27
コメントを書く