|
3 | 3 | # NOT REALLY WORKING YET
|
4 | 4 |
|
5 | 5 | Automatically package npm modules as jars with `deps.cljs` files.
|
| 6 | + |
| 7 | +## Goals |
| 8 | + |
| 9 | +- Full dead code elimination |
| 10 | +- Use React addons as separate dependencies instead of react vs. react-with-addons |
| 11 | +- As easy to use as normal Cljsjs packages, or preferably easier |
| 12 | +- Easier to package than normal Cljsjs packages |
| 13 | + |
| 14 | +## TODO |
| 15 | + |
| 16 | +- Closure can't yet resolve npm `require`s https://github.com/google/closure-compiler/issues/1773 |
| 17 | +- Fix Closure, or |
| 18 | +- Invent a way to preprocess `require` calls so that Closure can deal with them |
| 19 | + |
| 20 | +## Examples |
| 21 | + |
| 22 | +```$bash |
| 23 | +❯ boot package |
| 24 | +Package material-ui |
| 25 | +Writing pom.xml and pom.properties... |
| 26 | +Writing material-ui-0.15.4.jar... |
| 27 | +Package react |
| 28 | +Writing pom.xml and pom.properties... |
| 29 | +Writing react-15.3.1.jar... |
| 30 | +Package react-addons-create-fragment |
| 31 | +Writing pom.xml and pom.properties... |
| 32 | +Writing react-addons-create-fragment-15.3.1.jar... |
| 33 | +Package react-addons-transition-group |
| 34 | +Writing pom.xml and pom.properties... |
| 35 | +Writing react-addons-transition-group-15.3.1.jar... |
| 36 | +Package react-dom |
| 37 | +Writing pom.xml and pom.properties... |
| 38 | +Writing react-dom-15.3.1.jar... |
| 39 | +Package react-tap-event-plugin |
| 40 | +Writing pom.xml and pom.properties... |
| 41 | +Writing react-tap-event-plugin-1.0.0.jar... |
| 42 | +
|
| 43 | +~/Source/cljsjs.npm master 8s |
| 44 | +❯ tree target |
| 45 | +target |
| 46 | +├── cljsjs.npm |
| 47 | +│ ├── material-ui |
| 48 | +│ │ ├── lots of files |
| 49 | +│ ├── react |
| 50 | +│ │ ├── lib |
| 51 | +│ │ │ ├── lots of files |
| 52 | +│ │ └── react.js |
| 53 | +│ ├── react-addons-create-fragment |
| 54 | +│ │ └── index.js |
| 55 | +│ ├── react-addons-transition-group |
| 56 | +│ │ └── index.js |
| 57 | +│ ├── react-dom |
| 58 | +│ │ ├── index.js |
| 59 | +│ │ └── server.js |
| 60 | +│ └── react-tap-event-plugin |
| 61 | +│ └── src |
| 62 | +│ ├── defaultClickRejectionStrategy.js |
| 63 | +│ ├── injectTapEventPlugin.js |
| 64 | +│ ├── TapEventPlugin.js |
| 65 | +│ └── TouchEventUtils.js |
| 66 | +├── deps.cljs |
| 67 | +├── material-ui-0.15.4.jar |
| 68 | +├── META-INF |
| 69 | +│ └── maven |
| 70 | +│ └── cljsjs.npm |
| 71 | +│ ├── material-ui |
| 72 | +│ │ ├── pom.properties |
| 73 | +│ │ └── pom.xml |
| 74 | +│ ├── react |
| 75 | +│ │ ├── pom.properties |
| 76 | +│ │ └── pom.xml |
| 77 | +│ ├── react-addons-create-fragment |
| 78 | +│ │ ├── pom.properties |
| 79 | +│ │ └── pom.xml |
| 80 | +│ ├── react-addons-transition-group |
| 81 | +│ │ ├── pom.properties |
| 82 | +│ │ └── pom.xml |
| 83 | +│ ├── react-dom |
| 84 | +│ │ ├── pom.properties |
| 85 | +│ │ └── pom.xml |
| 86 | +│ └── react-tap-event-plugin |
| 87 | +│ ├── pom.properties |
| 88 | +│ └── pom.xml |
| 89 | +├── react-15.3.1.jar |
| 90 | +├── react-addons-create-fragment-15.3.1.jar |
| 91 | +├── react-addons-transition-group-15.3.1.jar |
| 92 | +├── react-dom-15.3.1.jar |
| 93 | +└── react-tap-event-plugin-1.0.0.jar |
| 94 | +
|
| 95 | +81 directories, 1380 files |
| 96 | +
|
| 97 | +~/Source/cljsjs.npm master |
| 98 | +``` |
0 commit comments