帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:template  Leiningen  COM  TEMP  luminus  lein  
Leiningen template combining luminus, chestnut plus some goodies

  • 源代码名称:closp
  • 源代码网址:http://www.github.com/sveri/closp
  • closp源代码文档
  • closp源代码下载
  • Git URL:
    git://www.github.com/sveri/closp.git
  • Git Clone代码到本地:
    git clone http://www.github.com/sveri/closp
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/sveri/closp
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • closp

    的closp在 0.3和更高的时候发生了显著的变化。

    所有当前的文档都涉及最新的稳定版本 0.2.0.
    你可以通过执行以下命令来使用旧版本: lein新 closp --template-version 0.2.0

    CircleCI

    CLOSP松弛通道

    结合 Luminus 。chestnut和一些goodies的Leiningen模板。

    Intro Gif

    这五个步骤是启动和运行的全部步骤。

    使用教程的文档- 请注意,文档是用于版本 0.2.0

    目标

    • 提供一个完整的堆栈来开始
    • 提供可以轻松更改的生成代码
    • 提供opiniated预定义的库集
    • 轻松启动侧边项目

    与Luminus的差异

    • 从sierras组件顶部的开始- 包装器的[System] ( https://github.com/danielsz/system ) 集成
    • 使用 login/logout/registration 和电子邮件激活用户管理( 由邮政提供)
    • 条件读取器支持
    • 通过实体定义进行crud集成
    • 实时重新加载clojurescript和 clojure 。
    • 注册 Recaptcha

    的基本原理

    在网络开发中启动 sideprojects,我发现自己不断重复相同的模式。 虽然 Luminus http://www.luminusweb.net/ 和板栗 https://github.com/plexus/chestnut 提供了一个不错的开始,但他们却错过了一些我again的特性,我又一次( 身份验证/注册进程/。) 。
    所以我把我用来提供一个一般和固执的起始点的库聚集在一起,至少有可能出现麻烦。

    用法

    • 运行 lein new closp _projectname_ -n foo.bar 在其他文件夹中。
    • 打开PostgreSQL实例并添加一个新用户: 使用密码: 然后,创建一个数据库,并创建一个数据库,projectname 。
    • 将用户的table 添加到新数据库。 脚本可以在 _migrators/postgres/1-user.up.sql'. 中找到
    • CD到新生成的文件夹 。
    • 运行 lein repl 和 inside (start-dev-system) 以启动服务器。
    • 在单独的控制台中运行 lein figwheel 以启动figwheel并编译 clojurescript 。

    特性

    • closp-crud集成
    • 文件系统 上的sql数据库作为默认值
    • 作为模板解决方案的打嗝
    • Immutant作为服务器
    • 支持 cljc
    • 使用clojurescript实时重新加载的Figwheel
    • 重新加载模板和clojure代码的支持
    • 使用 login/logout/registration的用户管理
    • Recaptcha支持注册表单
    • 伙伴提供的身份验证
    • 前端的试剂和 datascript
    • 环形Antiforgery中间件
    • 组件化应用程序
    • Booststrap 4.0 css样式
    • 带etaoin的HTML前端测试示例
    • 使用tempura的国际化支持

    Docker

    有一个dockerfile附加了最新版本并运行一个示例项目。

    配置

    resources文件夹中有一个 closp.edn 文件,应该相应地修改它。
    从repl启动项目时,它将从 resources 文件夹加载默认的closp.edn,这适合于开发。
    对于其他环境中的不同配置,你可以通过系统环境设置传入文件路径,如下所示: java -jar -Dclosp-config-path=C:pathtoiwf-prod.edn closp.jar
    在更改到不同的环境时,请考虑更改config中的:ipqos键:而不是:dev 。

    数据库

    默认Closp配置为连接到PostgreSQL数据库。
    更改 closp.edn 文件中的jdbc url将 switch 转到另一个数据库。
    连接由 jdbc ,所以所有jdbc支持的内容都由closp支持。

    身份验证和授权

    我们将使用 buddy ( https://github.com/funcool/buddy ) 库。
    配置是在 ns.service.auth 完成的。
    这里有一个角色的概念,管理和没有are提供 alreaded,你可以在auth名称空间add添加更多的。 或者,为此创建数据库存储。
    接下来,你可以在 auth中找到一个规则,它定义了所有可用链接的访问规则。 有关详细信息,请查看好友文档。

    模板

    Closp附带了打嗝 https://github.com/weavejester/hiccup 模板解决方案。

    注册

    有一个注册工作流,用于在regristration之后发送一个电子邮件,以激活帐户。 用户将无法登录帐户之前,该帐户将被激活。

    Recaptcha

    注册表单由recaptcha为 protected 。 要打开 closp.edn 文件并正确填写这些值,请执行以下操作:

    • :captcha-public-key
    • :private-recaptcha-key
    • :recaptcha域

    管理用户界面

    Closp附带了管理员界面 (/admin/users) 来激活/停用用户并设置相应的角色。 还有一个选项可以添加新用户。

    重新加载clojure代码和模板

    在开发模式中,将在页面刷新时重新编译和重新加载clojure代码。 模板的true 也相同。 理论上这个结果在没有服务器重启的情况下进行。

    带有figwheel的

    在cljs模式下,文件将自动编译并通过 figwheel https://github.com/bhauman/lein-figwheel 发送到浏览器。
    如果你想要自动加载不同的cljs函数,你必须在 [:cljsbuild :dev :figwheel] 中调整 dev.cljs 和 project.clj 文件。

    组件

    Closp附带一些预先定义的组件 https://github.com/danielsz/system 。

    • 处理程序组件
    • 配置组件
    • 数据库组件
    • web服务器组件

    要重新启动组件,只需在运行in中按 (reset) 键即可以。

    环 antiforgery

    https://github.com/weavejester/ring-anti-forgery 每个已经发送的表单默认启用 per 。 如果你使用 ajax post/put/... 调用,你需要在 header 中提供:x-csrf-token 。 使用 cljs-ajax,它看起来像这样:

    (ajax/ajax-request
     {:uri url
     :method method
     :params content
     :headers {:X-CSRF-Token (get-value"glob_anti_forgery")}})

    传输和 cljs-ajax

    关于如何使用 cljs ajax对服务器进行ajax请求的示例有一个示例。 请求将使用传输作为传输格式。 可以在下面的uri中找到: "/ajax/page/init"ajax.cljs 文件中。
    你至少需要运行 lein figwheel 一次来编译 clojurescript 。 和 finally 打开 dev.cljs 命名空间,并将需要的命名空间从
    (:require [f.d.core :as core])(:require [f.d.ajax :as core])

    试剂

    Closp包含一个试剂 https://github.com/reagent-project/reagenthttp://localhost:3000/reagent-example 下。

    生产

    project.clj 中定义了一个leiningen任务来生成 uberjar 。 只执行 lein rel-jar
    默认情况下,这将包括 closp.edn 配置文件在build资源 folder 。 你至少应该将:env条目更改为:prod或者其他内容:dev 。
    有几种方法可以设置更加分离的dev/staging/prod 环境。 请查找诺曼。

    Web集成测试

    Closp提供了一些关于如何在你的项目中使用etaoin进行集成测试的示例。 它们驻留在 integtestclj 中。

    默认情况下,测试使用:htlmunit驱动程序运行,这是快速的,但在javascript中不。 要改变,打开:{{ns}}.setup 并在 browser-setup 中调整驱动程序到 :firefor 或者 :chrome

    国际化

    Closp使用 https://github.com/ptaoussanis/tempura 插件进行国际化。 字符串在国际化中

    • en.edn
    • de.edn

    都可以在 resources/i18n 中找到

    小特性。

    • Namspace支持:添加 -n name.space 选项到 lein new closp projectname 为源文件提供命名空间。
    • 支持带有全局 Flash div的Flash 消息
    • 可以在资源文件夹中的closp.edn 文件中打开或者关闭自注册。
    • Test2junit插件来创建可以解释的测试结果。

    计划的功能

    • 当前正在为 closp crud处理 webui
    • 未来看来有用的东西。

    贡献者

    常见问题解答

    在类路径上找不到模板 closp 。

    当你运行以下命令时 lein new closp.. . 使用老的leiningen版本。 请升级到最新版本。

    我收到这个警告: 未捕获的错误:不变冲突:_registerComponent(...): 目标容器不是DOM元素。

    这将只发生在每个页面的register 模式中,这些页面中没有显式地使用。 查看这一行的dev.cljs :jsload-callback (fn [] (core/main)) 更改对 (core/main)的调用,如何在你现在正在工作的页面上使用它。

    更改路径定义时,更改页后不会应用更改

    你必须通过在repl中调用 ({{ns}}.user/reset) 来重新设置系统。

    支持

    Jetbrains的开发支持closp及其强大的IDE

    Jetbrains Logo

    许可证

    版权所有 © 2018斯文 Richter

    在 Eclipse public 许可以证下分发版本 1.0版本或者( 按你的选择) 版本任何版本。



    文章标签:COM  TEMP  template  lein  Leiningen  luminus  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语