zalmoxisus / crossbuilder

Building web, Electron, Cordova and Chrome apps, and cross-browser extensions with React, Redux and Webpack. "Write once, deploy everywhere" concept in practice.
MIT License
484 stars 50 forks source link

Without React branch #49

Open msholly opened 7 years ago

msholly commented 7 years ago

Pretty amazing workflow you have, but I was wondering if there's a guide somewhere or general recommendations to strip out React from the current main branch?

I saw the old Without-React branch, but its really out of date.

With even just general help, I'm happy to make a pull request once I get the project up and running without react. And maybe eventually with Angular perhaps.

zalmoxisus commented 7 years ago

I didn't maintain this boilerplate for a while. Currently, I don't use such workflow. I more prefer to split a project into multiple packages, and import them separately into Chrome extension and Electron app. Also, I'd give preference to pwa instead of using cordova (or if there's need for native interfaces - React Native). There is already a great boilerplate for Electron and for Chrome Extensions.

My plans are to have it like a cli and lib (instead of a boilerplate) for building chrome extensions / webextensions. And I want to have it vanilla (without React and Redux). I'll try to alloc some time for this next month. If you're also interested in extensions only, we can work together on it.

msholly commented 7 years ago

CLI would be amazing, but if more experienced devs like you are running in separate packages - maybe I should do the same. Either way you choose to go, I'm happy to test whatever you build.

In your current workflow - Are you basically copy/pasting code improvements made in one package to another? Or is there a more elegant solution?

zalmoxisus commented 7 years ago

You just import what you need. It's easier for React and Redux as you import React components and Redux reducers you need. But if you have the app identical for all platforms, you could just import the whole app as a function.

For example, remotedev-app is a web app, but at the same time it's published as a lib on npm (you can use it locally with npm link), and everything is reused in Chrome / firefox extension and in Electron app.

Having it as a multirepo with lerna would be even easier.