在将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
})
将package.json中的react-scripts
更改为"react-scripts": "3.4.0",
并运行yarn install
,或者您可以这样做:
yarn add [email protected]