使用Clojurescript或Google Closure编写Chrome扩展程序或Web应用程序是否可能?

22

我想使用ClojureScript编写Chrome扩展程序。

4个回答

23

Chrome插件通常使用HTML/CSS/JS制作,因此ClojureScript应该可以很好地工作,因为它会编译成JavaScript。话虽如此,我认为还没有人用ClojureScript构建过大型扩展程序。作为概念验证,这是一个制作简单警报扩展的一般概述,它将说出“Zaboomafoo”(对于这个名称我很抱歉):

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

制作一个ClojureScript文件,显示一个警报,内容为 "Zaboomafoo",像这样:

(ns Zaboomafoo.hello)   
(js/alert "Zaboomafoo")

使用lein cljsbuild编译此文件,以获取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:

{
   "name": "Displays Zaboomafoo when opening a new tab",
   "version": "0.1",
   "incognito": "split",
   "chrome_url_overrides": {
   "newtab": "Zaboomafoo.html"
  },
 "manifest_version": 2
}
将新的manifest.json、Zaboomafoo.html和Zaboomafoo.js放在一个明显的文件夹中。最后,进入Chrome扩展页面,打开开发人员模式,加载未打包的扩展,并打开一个新标签页。当您打开标签页时,扩展应该会加载一个令人烦恼地显示“Zaboomafoo”的警报。希望制作浏览器扩展变得更受欢迎,但这是一般流程。

7

0

我开始this项目的目的是使用ClojureScript编写Chrome扩展。

虽然greenyouse的回答提供了一般方向,但作为ClojureScript的初学者,我在使用leincljsbuild时遇到了一些问题,并选择先进行基本设置。也许这会帮助到某些人。

顺便说一句:我计划在更好地理解之后将我的项目迁移到leincljsbuild。到那时,我会更新这个答案。


-1

看看这个this Chrome 扩展,它是用 cljs 编写的,可以让你通过选择在浏览器中评估 Clojure 代码。


1
看起来这个项目(goranjovic/chromeclojure)没有使用任何ClojureScript。相反,Chrome扩展(用纯JavaScript编写)将选定的Clojure代码发送到外部Clojure JVM进程,并将结果返回给浏览器。我认为这并不是发帖者真正想要的。 - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接