Sofweb is an open-source solution for developing sleek cross-platform desktop applications.
It combines the best tools and frameworks, solves the common issues with connecting them and provides a robust solution to support daily development needs.
If you want to build sleek cross-platform applications by writing one codebase which runs anywhere, this is a solid starting point.
Sofweb mainly uses web-technologies, check the technologies list below for more information.
For awesome web-development solution starting points by good friend @AngularClass, check the list below.
Clone the repository: git clone https://github.com/israelg99/Sofweb.git
Move into it: cd Sofweb
Install all needed packages: npm install
src/app
- Your Angular2 files.
src/window
- Your Electron files.
spec/**.ts
- Your Jasmine files here, you can have as many sub-folders as you want.
src/app/bootstrap/bootstrap.ts
- Your entry bootstrap point, you must have this file!
src/window/index.html
- Your main html file, you must have this file!
src/window/index.js
- Your Electron js file, you must have this file!
You're ready to roll.
Check package.json
for the full list of scripts and adding your own.
npm run webpack
- Runs the webpack in development mode, outputs everything into src/dist
npm run production
- Runs the webpack in production mode, outputs everything into src/build
npm run electron
- Runs electron, by default it calls src/dist/index.js
npm test
- Runs the Karma tests with Jasmine on PhantomJS with TSlint, Istanbul for coverage and more...
First it uses the config/webpack/webpack.config.js
to determine which config to run in respect to your mode.
The appropriate config merges webpack.commong.js
and deletes src/build
(production) or src/dist
(development) and then it does the standard packing.
Lastly in production mode your file names are hashed and content is uglified(in a good way).
- DevServer
- CommonsChunkPlugin
- HtmlWebpackPlugin
- CopyWebpackPlugin
- OccurenceOrderPlugin
- DedupePlugin
- NoErrorsPlugin
- HotModuleReplacementPlugin
- ExtractTextPlugin
- UglifyJsPlugin
- CleanWebpackPlugin
To be updated
- Karma
- Jasmine
- Istanbul
- TSlint
- Codelyzer
- PhantomJS
- Webpack.test.config
Israel Gilyadov israelg99@gmail.com
@AngularClass has done an amazing job with this: