我想使用ClojureScript编写Chrome扩展程序。
我想使用ClojureScript编写Chrome扩展程序。
Chrome插件通常使用HTML/CSS/JS制作,因此ClojureScript应该可以很好地工作,因为它会编译成JavaScript。话虽如此,我认为还没有人用ClojureScript构建过大型扩展程序。作为概念验证,这是一个制作简单警报扩展的一般概述,它将说出“Zaboomafoo”(对于这个名称我很抱歉):
首先安装Leiningen和lein-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”的警报。希望制作浏览器扩展变得更受欢迎,但这是一般流程。我开始this项目的目的是使用ClojureScript编写Chrome扩展。
虽然greenyouse
的回答提供了一般方向,但作为ClojureScript的初学者,我在使用lein
和cljsbuild
时遇到了一些问题,并选择先进行基本设置。也许这会帮助到某些人。
顺便说一句:我计划在更好地理解之后将我的项目迁移到lein
和cljsbuild
。到那时,我会更新这个答案。
看看这个this Chrome 扩展,它是用 cljs 编写的,可以让你通过选择在浏览器中评估 Clojure 代码。