https://github.com/karad/lein_template_descjop.git
    git clone 'https://github.com/karad/lein_template_descjop.git'
      
      
(ql:quickload :karad.lein_template_descjop)
    
  
  
A Leiningen template for Web based desktop application with Electron(atom-shell) and others. (now Electron(atom-shell) based only. will build nw.js based later…)
Website : descjop.org/
important : not support leiningen 2.5.x
$ npm install -g grunt-cliYou can display help how to use descjop.
$ lein new descjop helpand you can use alias in project directory.
$ lein descjop-helpYou can display latest version.
$ lein new descjop version$ lein new descjop YOUR_APP_NAME
$ cd YOUR_APP_NAME$ lein new descjop YOUR_APP_NAME +om
$ cd YOUR_APP_NAME$ lein new descjop YOUR_APP_NAME +reagent
$ cd YOUR_APP_NAMEsee your app dir. looks like
.
+-- Gruntfile.js
+-- README.md
+-- app
|   +-- dev // deveropment mode dir
|   |   +-- index.html // entry html file
|   |   +-- js
|   |   |   +-- externs_front.js
|   |   |   +-- externs.js
|   |   |   +-- main.js
|   |   +-- package.json // for Desktop app
|   +-- prod // production mode dir
|       +-- index.html // entry html file
|       +-- js
|       |   +-- externs_front.js
|       |   +-- externs.js
|       |   +-- main.js
|       +-- package.json // for Desktop app
+-- package.json // for Compile
+-- project.clj // compile settings desktop app
+-- resources
+-- src
|   +-- NAMESPACE
|       +-- core.cljs // ClojureScript for Electron in here
+-- src_front
|   +--NAMESPACE_front
|      +-- core.cljs // Frontend clojureScript in here
+-- src_front_profile
    +--NAMESPACE_front
       +-- dev
       |   +-- conf.cljs
       |   +-- init.cljs
       +-- prod
           +-- conf.cljs
           +-- init.cljsrun descjop-init (windows user should use descjop-init-win) alias below.
$ lein descjop-init
 ...
 
Running "download-electron" task
 
Done, without errors.$ lein descjop-init-win
 ...
 
Running "download-electron" task
 
Done, without errors.you have to change src/PROJECT_NAME/core.cljs about :companyName and submitURL.
(defn -main []
  (.start crash-reporter (clj->js {:companyName "Your Company Name"
                                   :submitURL   "http://example.com/"}))
  ...and run extern alias descjop-externs,
$ lein descjop-externsrun cljsbuild lein descjop-once.
$ lein descjop-once
Compiling ClojureScript.
Compiling "app/js/cljsbuild-main.js" from ["src"]...
Successfully compiled "app/js/cljsbuild-main.js" in 10.812 seconds.
...
Successfully compiled "app/dev/js/front.js" in 10.588 seconds.
...
Successfully compiled "app/prod/js/cljsbuild-main.js" in 19.333 seconds.
...
Successfully compiled "app/prod/js/front.js" in 29.94 seconds.You can run Desktop application.
development mode use figwheel. run alias descjop-figwheel.  before run application.
Open other terminal window.
$ lein descjop-figwheeland you can run Electron(Atom-Shell) app.
On Windows:
$ .\electron\electron.exe app/devOn Linux:
$ ./electron/electron app/devOn OS X:
$ ./electron/Electron.app/Contents/MacOS/Electron app/devyou can run Electron(Atom-Shell) app.
On Windows:
$ .\electron\electron.exe app/prodOn Linux:
$ ./electron/electron app/prodOn OS X:
$ ./electron/Electron.app/Contents/MacOS/Electron app/prod$ npm install -g electron-packager$ lein descjop-uberapp-osx$ descjop-uberapp-app-store$ descjop-uberapp-win32$ descjop-uberapp-win64$ descjop-uberapp-linuxYou can change Electron version in Gruntfile.js.
module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        "download-electron": {
            version: "1.3.2", // change Electron version 1.3.2 -> 1.3.3
            outputDir: "./electron", 
            rebuild: true
        }
    });
    grunt.loadNpmTasks('grunt-download-electron');
};and re-run
for linux / mac
$ lein descjop-initfor windows
$ lein descjop-init-winyou can use aliases in project directory.
$ lein descjop-version       # descjop version
$ lein descjop-help          # descjop help
$ lein descjop-init          # init project
$ lein descjop-init-win      # init project for windows user
$ lein descjop-externs       # output externs for develop and production
$ lein descjop-externs-dev   # output externs for develop
$ lein descjop-externs-prod  # output externs for production
$ lein descjop-figwheel      # start figwheel
$ lein descjop-once          # build JavaScript for develop and production
$ lein descjop-once-dev      # build JavaScript for develop
$ lein descjop-once-prod     # build JavaScript for production
1.6.61.6.01.3.3lein descjop-version1.2.71.2.5Changes:
0.37.5lein descjop-helplein descjop-initlein descjop-externs lein descjop-externs-dev lein descjop-externs-prodlein descjop-once lein descjop-once-dev lein descjop-once-prodlein descjop-figwheelChanges:
0.36.11.1.20.1.5Changes:
0.36.1.loadUrl() to .loadURL()downloadDir Gruntfile settings. if you want to download electron on current project directory.atom-shell in app__index.html.gitignore exclude electron/*crash-reporter.start() in resources/leiningen/new/descjop/src__core.cljs that require companyName and submitURLChanges:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Changes:
Bugfixes:
Bugfixes:
Copyright © Kazuhiro Hara (Greative LLC http://greative.jp/) {:mail kazuhiroh@gmail.com :twitter https://twitter.com/kara_d}
Distributed under the MIT License http://opensource.org/licenses/MIT .