練習專案npm start啟動時報錯的個人解決辦法

簡以凝發表於2016-11-16

錯誤原因

這幾天在學習react,跟著慕課網的視訊學習。
React實戰–打造畫廊應用(上)
React實戰–打造畫廊應用(下)

在用yeoman最初構建專案,完成後需要啟動專案。
執行npm start時,出現了錯誤:

> @0.0.1 start E:workspaceloveGallery-by-react
> node server.js --env=dev

module.js:471
    throw err;
    ^

Error: Cannot find module `core-js/fn/object/assign`
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (E:workspaceloveGallery-by-reactserver.js:3:1)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! @0.0.1 start: `node server.js --env=dev`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @0.0.1 start script `node server.js --env=dev`.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node server.js --env=dev
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs
npm ERR! Or if that isn`t available, you can get their info via:
npm ERR!     npm owner ls
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     E:workspaceloveGallery-by-react
pm-debug.log

看了一下Error,是說找不到core-js/fn/object/assign這個檔案。Error: Cannot find module `core-js/fn/object/assign`
我在server.js檔案中看到這樣句程式碼require(`core-js/fn/object/assign`);。應該是需要引入這個moudle,我在專案資料夾node_modules中,沒有找到core-js檔案。所以應該是缺少這個moudle。

解決方案

找到原因就可以針對解決。好了少了core-js,那我們們就安裝這個。執行npm install -g core-js進行安裝,因為這個需要訪問國外的網站安裝,所以特別慢,等待安裝完了之後。再執行npm start,但是還報錯誤。去node_modules資料夾下看,還是沒有。

這下不知道怎麼解決了,然後找網上的解決方案,有一種方式說執行npm install,然後拿來就試,但是執行之後因為網速和牆的原因,特別慢,而且還報一些錯誤,安裝完成後,再看node_modules資料夾中,還是沒有core-js檔案。這下就徹底沒招了,這可怎麼解決。

沒招也不能放棄啊,繼續上網找吧。找到一個說使用npm在國內安裝模組很慢,有時候還不成功,推薦使用淘寶npm映象,我就想專案中缺少那個模組是不是就是因為npm安裝模組出了問題,沒有安裝上?
所以就嘗試以下這個淘寶npm映象-cnpm。

npm install -g cnpm --registry=https://registry.npm.taobao.org

通過這個命令安裝cnpm,之後執行cnpm install進行模組下載、安裝。緊接著就會看到它會下載一堆東西到node_modules資料夾下,其中就會有core-js資料夾,然後執行npm start,果真專案正常啟動。終於解決了這個問題。雖然我現在也不知道我這樣解決是不是正道,也不知道有沒有找到最根本的原因。
將這個寫成文章做個記錄,如果有人和我的情況類似,我這樣的解決方法也可已作為一個嘗試;還有就是說出來之後要是有更懂的人,可以看一看我這樣的解決辦法對不對。
主要還是作為交流。

相關文章