1

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 ?

Milan
  • 631
  • 1
  • 5
  • 21
  • Does this answer your question? [React JS Server side issue - window not found](https://stackoverflow.com/questions/38951721/react-js-server-side-issue-window-not-found) – Prathap Reddy Jul 31 '20 at 13:59

0 Answers0