2016-12-02 18 views
0

背景

我試圖讓我的AirBnB linting工作,並決定卸載我的npm包,以便重新安裝我的package.json文件。如何以理智的方式管理反應和其他包?

我做什麼

我運行的bash命令:

npm uninstall `ls -1 node_modules | tr '/\n' ' '` 

在那之後,我遵循了代碼庫標準的安裝程序,這是唯一的NPM在正確的目錄中安裝。我很確定我做對了。

什麼意外發生

當運行我的WebPack設立npm start一切都在朝好的方向發展,直到我得到了以下錯誤:

to be executed: nodemon --exec babel-node bin/server --no_debug 
[nodemon] 1.11.0 
[nodemon] to restart at any time, enter `rs` 
[nodemon] watching: *.* 
[nodemon] starting `babel-node bin/server --no_debug` 
    app:config Creating default configuration. +0ms 
    app:config Looking for environment overrides for NODE_ENV "development". +105ms 
    app:config Found overrides, applying to default configuration. +6ms 
    app:webpack:config Create configuration. +727ms 
    app:webpack:config Enable plugins for live development (HMR, NoErrors). +1ms 
    app:server:webpack-dev Enable webpack dev middleware. +385ms 
    app:server:webpack-hmr Enable Webpack Hot Module Replacement (HMR). +38ms 
    app:bin:server Server is now running at http://172.20.10.2:3000. +9ms 
    app:bin:server Server accessible via localhost:3000 if you are using the project defaults. +0ms 
webpack built b6bb9c1f12e4a68bce6a in 9735ms 
Hash: b6bb9c1f12e4a68bce6a 
Version: webpack 1.13.3 
Time: 9735ms 
          Asset  Size Chunks  Chunk Names 
     app.b6bb9c1f12e4a68bce6a.js 1.9 MB  0  app 
    vendor.b6bb9c1f12e4a68bce6a.js 664 kB  1  vendor 
    app.b6bb9c1f12e4a68bce6a.js.map 2.23 MB  0  app 
vendor.b6bb9c1f12e4a68bce6a.js.map 808 kB  1  vendor 

ERROR in ./~/react-dom/lib/ReactDOMUnknownPropertyHook.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/ReactDOMUnknownPropertyHook.js 15:29-72 

ERROR in ./~/react-dom/lib/ReactDOMNullInputValuePropHook.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/ReactDOMNullInputValuePropHook.js 13:29-72 

ERROR in ./~/react-dom/lib/ReactDOMInvalidARIAHook.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/ReactDOMInvalidARIAHook.js 14:29-72 

ERROR in ./~/react-dom/lib/ReactDebugTool.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/ReactDebugTool.js 16:29-72 

ERROR in ./~/react-dom/lib/ReactChildReconciler.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/ReactChildReconciler.js 29:27-70 37:31-74 

ERROR in ./~/react-dom/lib/flattenChildren.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/flattenChildren.js 26:27-70 42:33-76 

ERROR in ./~/react-dom/lib/checkReactTypeSpec.js 
Module not found: Error: Cannot resolve module 'react/lib/ReactComponentTreeHook' in /Users/pedrofigueiredo/Documents/hs/src/healthsite/react/frontend/node_modules/react-dom/lib 
@ ./~/react-dom/lib/checkReactTypeSpec.js 29:27-70 71:37-80 
webpack: bundle is now VALID. 

這似乎與反應版本有關,但我發現很難相信,因爲我沒有改變我的package.json文件中的任何東西。

下面是引用相關部分:

"dependencies": { 

    [...] 

    "react": "15.0.1", 
    "react-dom": "^15.0.0", 
    "react-redux": "^4.0.0", 
    "react-router": "^2.2.0", 
    "react-router-redux": "^4.0.0", 

我該如何解決這個問題?

+2

你試過用rm -rf刪除node_modules dir(rm -rf會刪除那個目錄中的所有內容!!所以注意)?並做npm後安裝? –

回答

1

考慮使用yarn作爲NPM的替代方案。紗線通過創建yarn.lock文件來提供確定性的安裝,這可以確保在不同時間安裝在不同機器上的棉條都可以解析爲相同的版本,類似於npm install --save-exact foo

正在運行yarn(簡寫爲yarn install)相當於rm -rf node_modules && npm install,這是解決npm問題的第一步,正如@Yan Maleksi所建議的。

紗線將代表安裝衝突與npm不同,這可能會使查看哪個依賴項成爲問題更容易。在你的情況下,搜索'無法解析模塊'反應/ lib/ReactComponentTreeHook'表明react-hot-loader可能是一個問題,但很難說如果沒有看到整個依賴列表和相關的安裝錯誤。

+0

解決了它,謝謝! :)紗FTW –

相關問題