纱线类型错误问题(升级到纱线当前版本时)

问题描述 投票:0回答:1

在将yarn升级到最新版本时,我的mern堆栈应用程序崩溃了,并且收到typeError消息。有人可以帮忙吗?提前致谢。这是错误:

TypeError: Path must be a string. Received undefined
at assertPath (path.js:28:11)
at Object.join (path.js:489:7)
at noopServiceWorkerMiddleware (C:\Projects\react-portfolio\comfort-app\node_modules\react-dev-utils\noopServiceWorkerMiddleware.js:14:26)
at Layer.handle [as handle_request] (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:317:13)
at C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:335:12)
at next (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:275:10)
at launchEditorMiddleware (C:\Projects\react-portfolio\comfort-app\node_modules\react-dev-utils\errorOverlayMiddleware.js:20:7)
at Layer.handle [as handle_request] (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:317:13)
at C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:335:12)
at next (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\index.js:275:10)
at handleWebpackInternalMiddleware (C:\Projects\react-portfolio\comfort-app\node_modules\react-dev-utils\evalSourceMapMiddleware.js:42:7)
at Layer.handle [as handle_request] (C:\Projects\react-portfolio\comfort-app\node_modules\express\lib\router\layer.js:95:5)    

package.json文件在这里:

我应该降级到旧版本的yarn。恐怕我会得到更多的错误。任何想法..


{
  "name": "comfort-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@fortawesome/react-fontawesome": "^0.1.9",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "axios": "^0.19.1",
    "bootstrap": "^4.4.1",
    "cloudinary-core": "^2.8.2",
    "react": "^16.12.0",
    "react-dom": "^16.12.0",
    "react-redux": "^7.2.0",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.3.0",
    "redux": "^4.0.5",
    "redux-devtools-extension": "^2.13.8",
    "redux-thunk": "^2.3.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

我没有提到我以前在我的项目中添加了redux。以下是相关文件:

store.js

import { createStore, applyMiddleware } from 'redux'
import { composeWithDevTools } from 'redux-devtools-extension'
import thunk from 'redux-thunk'
import rootReducer from './reducers'

const initialState = {}
const middleware = [thunk]

const store = createStore(
    rootReducer,
    initialState,
    composeWithDevTools(applyMiddleware(...middleware))
)

export default store

addAction.js

此文件位于我的actions文件夹中,例如:src / actions / addActions.js

import { ADD_PRODUCT_BASKET} from './types'


export const addBasket = () => {
    return (dispatch) => {
        console.log('Adding to Basket')
        dispatch({
            type: ADD_PRODUCT_BASKET
        })
    }
}

types.js此处:

路径:src / actions / types.js

export const ADD_PRODUCT_BASKET = 'ADD_PRODUCT_BASKET'
export const GET_NUMBERS_BASKET = 'GET_NUMBERS_BASKET'

basketReducer.js此处:

路径:reducers / basketReducer.js

import { ADD_PRODUCT_BASKET, GET_NUMBERS_BASKET } from '../actions/types'

const initialState = {
    basketNumbers: 0
}


export default (state = initialState, action) => {
    switch(action.type) {
        case ADD_PRODUCT_BASKET:
            return {
                basketNumbers: this.state.basketNumbers + 1
            }
        case GET_NUMBERS_BASKET:
            return {
                ...state
            }
        default:
            return state
    }
}

index.js此处:

路径:reducers / index.js

import { combineReducers } from 'redux'
import basketReducer from './basketReducer'

export default combineReducers({
    basketState: basketReducer
})

reactjs redux yarn mern
1个回答
0
投票

将package.json中的react-scripts更改为"react-scripts": "3.4.0",并运行yarn install,或者您可以这样做:

yarn add [email protected]
© www.soinside.com 2019 - 2024. All rights reserved.