I've already developed application and I'm integrating server side rendering in my react js application. I'm getting issue while run node server/index.js
Error:
redux-persist failed to create sync storage. falling back to memory storage.
/var/www/html/project/src/configureStore.js:35
var composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || _redux.compose;
^
ReferenceError: window is not defined
at configureStore (/var/www/html/project/src/configureStore.js:22:28)
at Object.<anonymous> (/var/www/html/project/server/server.js:20:15)
at Module._compile (internal/modules/cjs/loader.js:816:30)
at Module._compile (/var/www/html/project/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:827:10)
at Object.newLoader [as .js] (/var/www/html/project/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:685:32)
at Function.Module._load (internal/modules/cjs/loader.js:620:12)
at Module.require (internal/modules/cjs/loader.js:723:19)
at require (internal/modules/cjs/helpers.js:14:16)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
configureStore.js :
import { compose, createStore, applyMiddleware } from 'redux';
import createSagaMiddleware from 'redux-saga';
import thunkMiddleware from 'redux-thunk';
import { createLogger } from 'redux-logger';
import rootReducer from './reducers';
// import rootSaga from './sagas/index';
import { persistStore } from 'redux-persist'
import dev from './dev';
const loggerMiddleware = createLogger()
const sagaMiddleware = createSagaMiddleware()
const middlewares = [thunkMiddleware, sagaMiddleware];
const env = process.env.REACT_APP_API_MODE;
if (env === 'dev' || env === 'development' || env === 'local') middlewares.push(loggerMiddleware);
export function configureStore(preloadedState) {
// const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
let store = createStore(
rootReducer,
preloadedState,
composeEnhancers(
applyMiddleware(
...middlewares,
)
)
);
// sagaMiddleware.run(rootSaga);
const persistConfig = {
blacklist: [
// 'search',
],
};
let persistor = persistStore(store, [persistConfig]);
if (dev.purgeStore) {
persistor.purge()
localStorage.setItem('jwtToken', '')
}
return { persistor, store };
}
server/index.js:
require('ignore-styles');
require('@babel/register')({
ignore: ['/(node-modules)/'],
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: [
[
"@babel/plugin-proposal-class-properties"
]
]
});
require('./server');
I have to use window or document in many places in application.
Can anyone please let me know what is the solution to fix this error ?