# 0.8 Upgrade guide The necessary changes depend on what environment you target, and how you want to provide React. ## Browser - Cljsjs Using Reagent itself with Cljsjs packages doesn't require changes, other than making sure you depend on the latest Cljsjs React packages, if you have direct dependencies to them. ## Browser - node modules You can use `:npm-deps` and `:install-deps` compiler options to install the packages automatically. If `react`, `react-dom` and `create-react-class` are available in `node_modules` directory, ClojureScript compiler will use these with Reagent. **This doesn't depend on use of `:npm-deps` option!** `:npm-deps` option is only about installing the dependencies, if packages are available in `node_modules` directory, they will be used. You can use `:process-shim` compiler option to provide `process.env.NODE_ENV` constant which is used by JS code to enable development and production builds. ClojureScript compiler will automatically set this constant to `production` value when using `:advanced` optimizations. This enables the React production build. ## NodeJS Install `react`, `react-dom` and `create-react-class` npm packages, and ClojureScript should automatically use `require` to load React for Reagent. ## Electron ??? ## React-native https://github.com/drapanjanas/re-natal/issues/128 ## Common Problems ### Mismatch with Cljsjs and npm packages If you have one npm package installed, e.g. `react`, you also need to provide others (`react-dom` and `create-react-class`), else Cljsjs packages would be used for these, and packages from different sources don't work together.