1、npm是nodejs的包管理器,相當於php的composer,python的pip,用於安裝各種包。
2、一般來說,別人拷給你的react項目不會帶依賴包的,因為太大了,需要用npm命令自己安裝,所以,啟動別人react項目的流程是:
進入項目根目錄
刪除node_modules目錄
運行npm install命令,安裝所需包
安裝完成后,npm start 啟動
報錯解決
這次,我在clone下來項目后直接運行npm start,系統報了沒有react-app-rewired包錯誤。說明需要執行npm install
在項目根目錄中執行npm install(注意,直接npm install就行,不必指定要安裝的包名,系統會自動根據package.json和package-lock.json為項目安裝各種包。
執行npm install又遇到報錯:
sha1-xxx checksum failed wanted sha1-xxx but got sha512-xxx. (10700 bytes)

嘗試了網上的各種方法都不對。
又以為是npm或nodejs的版本太低了,將npm和nodejs都升級之后還是不對。
根據錯誤提示查看錯誤log:
在log中搜索一下錯誤提示中的 hash值,發現 log 的21739行:

注意這一行:
21739 silly tarball trying file-saver@1.3.8 by hash: sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=
再看一下要打開的react項目中的package.json文件:
搜索一下filesaver

因此錯誤原因是:該項目需要file-saver 1.3.8版本,而使用 “ npm install ” 命令默認安裝的不是該版本,因此 npm install 命令報錯。
於是嘗試為npm命令指定安裝包的版本
npm install --save file-saver@1.3.8
發現filesaver安裝成功。
然后在運行npm install命令,發現報錯消失。
解決
