Google chrome extension 是否可以使用Clojurescript或Google Close来编写Chrome扩展或web应用程序?

Google chrome extension 是否可以使用Clojurescript或Google Close来编写Chrome扩展或web应用程序?,google-chrome-extension,clojure,google-closure,clojurescript,Google Chrome Extension,Clojure,Google Closure,Clojurescript,我想使用clojurescript来编写chrome扩展。chrome扩展通常使用HTML/CSS/JS制作,因此clojurescript应该可以正常工作,因为它可以编译为JavaScript。尽管如此,我认为还没有人真正用ClojureScript构建了一个大型扩展。作为概念证明,这里概括介绍了如何创建一个简单的警报扩展名,该扩展名为Zaboomafoo(对不起,这个名字): 首先安装并安装。阅读lein cljsbuild的文档并查看,以了解如何在项目和编译中使用lein cljsbuil

我想使用clojurescript来编写chrome扩展。

chrome扩展通常使用HTML/CSS/JS制作,因此clojurescript应该可以正常工作,因为它可以编译为JavaScript。尽管如此,我认为还没有人真正用ClojureScript构建了一个大型扩展。作为概念证明,这里概括介绍了如何创建一个简单的警报扩展名,该扩展名为Zaboomafoo(对不起,这个名字):

首先安装并安装。阅读lein cljsbuild的文档并查看,以了解如何在项目和编译中使用lein cljsbuild

制作一个ClojureScript文件,该文件显示一个警告,上面写着“Zaboomafoo”,如下所示:

(ns Zaboomafoo.hello)   
(js/alert "Zaboomafoo")
使用
leincljsbuild
编译此文件以获取JavaScript文件。然后为扩展添加一个基本HTML文件和manifest.json

Zaboomafoo.html:

<!Doctype html>
<html>
    <head>
        <title>Zaboomafoo!</title>
    </head>
    <body>
        <script type="text/javascript" src="Zaboomafoo.js"></script>
    </body>
</html>
将新的manifest.json、Zaboomafoo.html和Zaboomafoo.js放在一个明显的文件夹中。最后,转到chrome扩展页面,打开开发者模式,加载未打包的扩展,并打开一个新选项卡。当您打开选项卡时,扩展应该加载一个令人烦恼地说“Zaboomafoo”的警报。希望使浏览器扩展变得更流行一点,但这是它的一般流程。

看看用cljs编写的chrome扩展,它允许您通过选择来评估浏览器中的clojure代码作为示例。

我启动该项目的确切目的是使用ClojureScript编写chrome扩展

虽然
greenyouse
answer确实为您提供了一般指导,但作为ClojureScript的初学者,我在使用
lein
cljsbuild
时遇到了一些问题,并选择先进行基本设置。也许它会帮助别人


旁注:一旦我更好地理解了事情,我计划将我的项目迁移到
lein
cljsbuild
。此时,我将更新此答案。

我刚刚发布了一个简单的Chrome扩展示例项目以及一些文档:

它使用Chromex库:

免责声明:我是图书馆的作者

这个项目(goranjovic/ChromeCrojure)似乎没有使用任何ClojureScript。相反,Chrome扩展(用纯JavaScript编写)将选定的Clojure代码发送到外部Clojure JVM进程,并将结果返回给浏览器。我认为这不是海报想要的。
{
   "name": "Displays Zaboomafoo when opening a new tab",
   "version": "0.1",
   "incognito": "split",
   "chrome_url_overrides": {
   "newtab": "Zaboomafoo.html"
  },
 "manifest_version": 2
}