2016-12-02 42 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 –

相关问题