项目作者: karad

项目描述 :
A Leiningen template(Clojure/ClojureScript Project) for Web based desktop application with Electron (atom-shell).
高级语言: Clojure
项目地址: git://github.com/karad/lein_template_descjop.git
创建时间: 2015-04-17T05:28:47Z
项目社区:https://github.com/karad/lein_template_descjop

开源协议:

下载


logo descjop

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/

Clojars Project

Requirements

  • leiningen 2.6.x +
  • node v6.x +
  • grunt v0.1.13 +

important : not support leiningen 2.5.x

(If not already installed grunt.)

  1. $ npm install -g grunt-cli

Help

You can display help how to use descjop.

  1. $ lein new descjop help

and you can use alias in project directory.

  1. $ lein descjop-help

display latest version

You can display latest version.

  1. $ lein new descjop version

New project from leiningen template

Minimum project

  1. $ lein new descjop YOUR_APP_NAME
  2. $ cd YOUR_APP_NAME

Om based project

  1. $ lein new descjop YOUR_APP_NAME +om
  2. $ cd YOUR_APP_NAME

reagent based project

  1. $ lein new descjop YOUR_APP_NAME +reagent
  2. $ cd YOUR_APP_NAME

Project Directory

see your app dir. looks like

  1. .
  2. +-- Gruntfile.js
  3. +-- README.md
  4. +-- app
  5. | +-- dev // deveropment mode dir
  6. | | +-- index.html // entry html file
  7. | | +-- js
  8. | | | +-- externs_front.js
  9. | | | +-- externs.js
  10. | | | +-- main.js
  11. | | +-- package.json // for Desktop app
  12. | +-- prod // production mode dir
  13. | +-- index.html // entry html file
  14. | +-- js
  15. | | +-- externs_front.js
  16. | | +-- externs.js
  17. | | +-- main.js
  18. | +-- package.json // for Desktop app
  19. +-- package.json // for Compile
  20. +-- project.clj // compile settings desktop app
  21. +-- resources
  22. +-- src
  23. | +-- NAMESPACE
  24. | +-- core.cljs // ClojureScript for Electron in here
  25. +-- src_front
  26. | +--NAMESPACE_front
  27. | +-- core.cljs // Frontend clojureScript in here
  28. +-- src_front_profile
  29. +--NAMESPACE_front
  30. +-- dev
  31. | +-- conf.cljs
  32. | +-- init.cljs
  33. +-- prod
  34. +-- conf.cljs
  35. +-- init.cljs

Usage

step 1

run descjop-init (windows user should use descjop-init-win) alias below.

OSX/Linux user

  1. $ lein descjop-init
  2. ...
  3. Running "download-electron" task
  4. Done, without errors.

Windows user

  1. $ lein descjop-init-win
  2. ...
  3. Running "download-electron" task
  4. Done, without errors.

step 2

you have to change src/PROJECT_NAME/core.cljs about :companyName and submitURL.

  1. (defn -main []
  2. (.start crash-reporter (clj->js {:companyName "Your Company Name"
  3. :submitURL "http://example.com/"}))
  4. ...

step 3

and run extern alias descjop-externs,

  1. $ lein descjop-externs

run cljsbuild lein descjop-once.

  1. $ lein descjop-once
  2. Compiling ClojureScript.
  3. Compiling "app/js/cljsbuild-main.js" from ["src"]...
  4. Successfully compiled "app/js/cljsbuild-main.js" in 10.812 seconds.
  5. ...
  6. Successfully compiled "app/dev/js/front.js" in 10.588 seconds.
  7. ...
  8. Successfully compiled "app/prod/js/cljsbuild-main.js" in 19.333 seconds.
  9. ...
  10. Successfully compiled "app/prod/js/front.js" in 29.94 seconds.

step 4

You can run Desktop application.

development mode

development mode use figwheel. run alias descjop-figwheel. before run application.
Open other terminal window.

  1. $ lein descjop-figwheel

and you can run Electron(Atom-Shell) app.

On Windows:

  1. $ .\electron\electron.exe app/dev

On Linux:

  1. $ ./electron/electron app/dev

On OS X:

  1. $ ./electron/Electron.app/Contents/MacOS/Electron app/dev

production mode

you can run Electron(Atom-Shell) app.

On Windows:

  1. $ .\electron\electron.exe app/prod

On Linux:

  1. $ ./electron/electron app/prod

On OS X:

  1. $ ./electron/Electron.app/Contents/MacOS/Electron app/prod

Package App

(If not already installed Electron-packager.)

  1. $ npm install -g electron-packager

run command

for OSX

  1. $ lein descjop-uberapp-osx

for OSX app store

  1. $ descjop-uberapp-app-store

for windows 32bit app

  1. $ descjop-uberapp-win32

for windows 64bit app

  1. $ descjop-uberapp-win64

for linux

  1. $ descjop-uberapp-linux

How to Upgrade to new Electron version

You can change Electron version in Gruntfile.js.

  1. module.exports = function(grunt) {
  2. grunt.initConfig({
  3. pkg: grunt.file.readJSON('package.json'),
  4. "download-electron": {
  5. version: "1.3.2", // change Electron version 1.3.2 -> 1.3.3
  6. outputDir: "./electron",
  7. rebuild: true
  8. }
  9. });
  10. grunt.loadNpmTasks('grunt-download-electron');
  11. };

and re-run

for linux / mac

  1. $ lein descjop-init

for windows

  1. $ lein descjop-init-win

Aliases

you can use aliases in project directory.

  1. $ lein descjop-version # descjop version
  2. $ lein descjop-help # descjop help
  3. $ lein descjop-init # init project
  4. $ lein descjop-init-win # init project for windows user
  5. $ lein descjop-externs # output externs for develop and production
  6. $ lein descjop-externs-dev # output externs for develop
  7. $ lein descjop-externs-prod # output externs for production
  8. $ lein descjop-figwheel # start figwheel
  9. $ lein descjop-once # build JavaScript for develop and production
  10. $ lein descjop-once-dev # build JavaScript for develop
  11. $ lein descjop-once-prod # build JavaScript for production

Desktop Application pic

Milestones

  • descjop cli command
  • add CSS
  • test suite

Change log

0.7.2 (2017-05-10)

  • update electron -> 1.6.6
  • fix package build alias

0.7.1 (2017-02-21)

  • update Readme.txt for Upgrading Electron version.

0.7.0 (2017-02-14)

  • update electron -> 1.6.0
  • update clojurescript 1.7.228 -> 1.9.473
  • some :dependencies update
  • add electron packager command
    • descjop-uberapp-osx
    • descjop-uberapp-app-store
    • descjop-uberapp-linux
    • descjop-uberapp-win64
    • descjop-uberapp-win32

0.6.6 (2016-08-11)

  • update electron -> 1.3.3

0.6.5 (2016-07-17)

  • add descjop command version alias lein descjop-version
  • update electron -> 1.2.7

0.6.4 (2016-07-07)

  • update electron -> 1.2.5

0.6.3 (2016-04-11)

  • fixed namespace problem.

0.6.2 (2016-04-10)

Changes:

  • update clojurescript 1.7.122 -> 1.7.228
  • update electron -> 0.37.5
  • add descjop command help alias lein descjop-help
  • add descjop command init alias lein descjop-init
  • add descjop command externs alias lein descjop-externs lein descjop-externs-dev lein descjop-externs-prod
  • add descjop command compile alias lein descjop-once lein descjop-once-dev lein descjop-once-prod
  • add descjop command figwheel alias lein descjop-figwheel
  • support development and production mode.
  • re-design directories.
  • some bug fix

0.5.4 (2015-12-29)

Changes:

  • update document
  • update electron -> 0.36.1
  • update lein-cljsbuild -> 1.1.2
  • update lein-externs -> 0.1.5

0.5.3 (2015-12-19)

Changes:

  • update electron -> 0.36.1
  • change deprecated method .loadUrl() to .loadURL()
  • add downloadDir Gruntfile settings. if you want to download electron on current project directory.
  • delete atom-shell in app__index.html
  • change .gitignore exclude electron/*
  • change crash-reporter.start() in resources/leiningen/new/descjop/src__core.cljs that require companyName and submitURL

0.5.2 (2015-11-19)

Changes:

  • update electron -> 0.35.0

0.5.1 (2015-10-22)

Changes:

  • update electron -> 0.34.0
  • update clojurescript -> 1.7.145

0.5.0 (2015-10-09)

Changes:

  • om also support figwheel. great job @dvcrn!
  • update electron -> 0.33.6

0.4.0 (2015-09-29)

Changes:

0.3.2 (2015-09-19)

Changes:

  • add help command
  • update electron -> 0.33.0

0.3.1 (2015-09-10)

Changes:

  • update electron -> 0.32.2

0.3.0 (2015-09-05)

Changes:

  • add +om option. Om based template support.

0.2.1 (2015-09-03)

Changes:

  • update clojurescript -> 1.7.48
  • update electron -> 0.31.2
  • update grunt-download-electron -> 2.1.2

0.2.0 (2015-08-03)

Changes:

  • support :optimization :none
  • update clojure -> 1.7.0
  • update clojurescript -> 1.7.28
  • update electron -> 0.30.2

0.1.8 (2015-06-22)

Changes:

  • update Electron version 0.28.1 to 0.28.2

0.1.7 (2015-06-16)

Changes:

  • update Electron version 0.27.3 to 0.28.1

0.1.6 (2015-06-08)

Changes:

  • update Electron version 0.26.1 to 0.27.3

0.1.5 (2015-05-22)

Changes:

  • update Electron version 0.26.0 to 0.26.1

0.1.4 (2015-05-16)

Changes:

  • update Electron version 0.25.3 to 0.26.0

0.1.3 (2015-05-08)

Changes:

  • update Electron version 0.24.0 to 0.25.3
  • update grunt-download-electron to 2.1.1

0.1.2 (2015-04-22)

Bugfixes:

  • change calling how to index.html path (#2, @karad)

0.1.1 (2015-04-20)

Bugfixes:

  • change grunt task from atom-shell to electron (#1, @karad)

License

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 .

Thanks