mirror of https://github.com/status-im/reagent.git
55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# 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.
|