- Clone the source code.
- Run
npm install. - Run
npm start. - Open chrome extension. Choose add package extension. Point to
devfolder inside this folder. - Using the chrome_app_id put the url:
chrome-extension:<chrome_app_id>/test.html. You should see the unit test
src/app: React cross-browser application (will be imported in the apps bellow).src/web: web app sources.src/browser: extensions sources.src/chromeApp: Chrome app sourcessrc/electron: Electron app sourcestest/app: tests for Redux actions and reducers, and for React components (using enzyme).test/chrome: tests for Chrome app and extension (using chromedriver, selenium-webdriver).
# required node.js/io.js
# clone it
npm install# build files to './dev'
# watch files change
# start WebpackDevServer
npm start- Open web app in browser at
localhost:3000. - Load unpacked extension's
./devfolder to Chrome.
This boilerplate uses Webpack and react-transform. You can hot reload by editing related files of ./src/app. If the inject page for the extension is on https (like https://github.com), click the 'shield' icon on the Chrome address bar to allow loading http://localhost there (after making any changes in dev mode), so hot reload can work for that page.
We use Redux DevTools Extension, install it from Chrome store for debugging.
# build files to './build/web'
npm run build:web# build files to './build/electron'
npm run build:electron
# or to start it
npm run start:electron# build files to './build/app'
npm run build:app# build files to './build/extension'
npm run build:extension# build files to './build/firefox'
npm run build:firefoxNote that you should use Firefox Nightly or Developer Edition to support WebExtensions. It's not possible for now to load Firefox extensions from local directories, so use npm run compress:firefox instead to generate an xpi file or use Firefox Developer Edition which can load local directories. Make sure yo follow prerequisites and installing instruction.
- Install global tools:
npm install -g cordova. - Add your cordova platform by running
cordova platform add %PLATFORM%(where%PLATFORM%is the platform you deploy for: android and more). - Use
cordova run androidorcordova build androidto run or build the app (it will executenpm run build:cordovaautomatically as a hook).
# build and compress Electron app to [name].dmg, win32-ia32.zip, win32-x64.zip, linux-ia32.zip, linux-x64.zip
npm run compress:electron
# compress Chrome app to app.zip
npm run compress:app
# compress Chrome extension to extension.zip
npm run compress:extension
# compress Firefox extension to firefox.xpi
npm run compress:firefox# test app
npm run test:app
# start Chromedriver for testing with Chrome
npm run before:test:chrome
# test Chrome extension
npm run test:chrome:extension
# test Chrome app
npm run test:chrome:app
# test Chrome extension and app
npm run test:chrome
# test everything
npm testTODO