【问题标题】:How do I set up cljsbuild to move non-compiled files into a specific folder?如何设置 cljsbuild 以将非编译文件移动到特定文件夹中?
【发布时间】:2014-11-24 06:13:51
【问题描述】:

我的 Clojurescript 项目从三个文件开始——一个 index.html、一个 css 文件、手写的 .cljs 代码。

当 cljsbuild 将 .cljs 文件构建为 .js 文件时,它会将其放置在任意位置。我也想把 index.html 和 css 文件也移到那里。

我想要这个的原因是我可以拥有多个配置文件,并轻松加载两者。我有一个未优化 javascript 的 dev 配置文件,以及一个优化 javascript 的 release 配置文件。但是在它们之间切换很烦人——我必须以某种方式获取单个现有的 index.html 文件并更改它指向的 javascript 文件。 (如果我有两个 index.html 文件,每个文件指向不同的 javascript 文件,对一个 html 文件进行更改意味着复制另一个文件的更改)

我宁愿有两个版本:

dev 构建构建到 project/dev

release 构建构建到 project/release

两个版本都有index.htmlstyle.csscompiled.js 文件。有什么办法可以做到这一点?

【问题讨论】:

    标签: build clojurescript cljsbuild


    【解决方案1】:

    为此,我认为您的项目需要额外的工具。

    前端工具是一个艰难的世界,有许多替代方案和工作流程,每个都有其权衡。

    最简单的方法是创建一个 makefile,并在您想要复制/编译 HTML 和 CSS 时调用它。这应该可以帮助您入门,但很难在 Windows 上开始工作。

    对于已建立的跨平台解决方案,我会考虑将 grunt 集成到工作流程中。使用 grunt,您可以轻松地让文件观察程序将您的 HTML 和 CSS 复制/编译到您的文件夹中,甚至可以将文件缩小/整理。权衡是更陡峭的学习曲线和项目的初始设置。

    有很多选项,但我所知道的没有任何特定于 cljs 的工具。

    【讨论】:

    • 感谢您的意见。这种情况就是这样,但不是最理想的——使用lein cljsbuild auto,我不必停下来运行构建;很遗憾,我必须添加额外的工具或为发布构建提供完全不同的工作流程。
    • 您需要做的是让两个工具监视(cljsbuild 查看 .cljs 文件和 (make/grunt/...) 查看 html/css/less/js 文件)。如果您只想在 cljsbuild 重新编译时执行某些操作,那么您可以使用 :notify-command 来执行此操作(但这不会使 cljsbuild 文件监视 html 和 css 文件,这可能就足够了,很难)。这是示例 conf 的链接:github.com/emezeske/lein-cljsbuild/blob/…
    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多