1.8 KiB
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.
If you use additional React packages, you need to update Cljsjs packages
for these to use new React foreign-lib name, react
instead of cljsjs.react
.
Subject to change, if this can be solved easily.
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 :shim-process
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.