介绍
使用 Google Apps Script(以下简称 GAS)进行开发时会出现一些问题。由于开发是在GAS的IDE上进行的,所以很难使用自己熟悉的编辑器,也很难管理版本。
一个名为 clasp 的 CLI 工具可以解决这个问题。这一次,我想总结一下如何使用表扣以及使用时的注意事项。
什么是扣子
clasp 是一个 CLI 工具,可以在本地进行 GAS 开发。C。命令L.线一个ppsS。脚本P。它是通过取项目每个单词的第一个字母来命名的。
这一次,我将根据这个存储库中的 README 使用 clasp。
用法
在你开始之前
使用 clasp 时,Node.js 版本必须为 12.20.0 或更高版本(截至 2022 年 10 月 1 日)
必要时检查版本!
我目前正在运行以下版本:
$ node -v
v18.10.0
$ clasp -v
2.4.2
此外,各种命令将在此目录中执行
$ pwd
path/to/clasp_test
安装
首先安装扣子。通过运行以下 npm 命令安装它。
npm install -g @google/clasp
安装完成后,访问下面的 URL 并打开 Google Apps Script API。
登录
在本地开发 GAS 时,需要登录创建 GAS 项目的谷歌账号。您可以使用以下命令登录。
clasp login
执行上述命令后,将启动浏览器。当您选择一个帐户时,您将被要求使用 clasp 的权限,所以请允许它。登录完成。
此外,登录完成后,会在主目录中创建带有令牌的~/.clasprc.json。
创建项目
要使用 GAS 进行开发,您首先需要创建一个项目。使用create 命令创建项目。 create 命令有多个选项,例如指定项目名称、指定创建项目的目录、创建链接到项目的 Google 应用程序(Google Docs、Google Sheets 等)。
现在运行以下命令来创建项目。
clasp create --title "clasp_test" --type standalone --rootDir path/to/clasp_test
创建项目时,会在当前目录或选项指定的目录下创建以下两个文件。
-
.clasp.json- 包含脚本 ID 和推送目录
-
appsscript.json- 这是项目清单文件
创建项目时文件的内容如下。
{"scriptId":"<scriptId>","rootDir":"path/to/clasp_test"}
{
"timeZone": "America/New_York",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
创建文件
创建项目后,让我们编写 GAS!这一次,我尝试创建一个如下所示的文件。
function hello() {
Logger.log("Hello clasp!")
}
将文件上传到您的项目
要将文件上传到您的项目,请运行以下命令。
clasp push
运行clasp status 以查看哪些文件将被上传到项目中。如果您运行该命令,您将获得以下结果。
$ clasp status
Not ignored files:
└─ path/to/clasp_test/appsscript.json
└─ path/to/clasp_test/hello.js
Ignored files:
└─ path/to/clasp_test/.clasp.json
默认不上传.开头的文件,所以.clasp.json在Ignored files中。
对了,如果有不想上传的文件,可以通过创建.claspignore来解决。该文件与 Git 中的.gitignore 具有相同的作用。这一次,我想尽量不要实际推送,或者创建.claspignore 和test_claspignore.js。
function test_claspignore() {
Logger.log("Test .claspignore")
}
test_claspignore.js
创建上述文件后运行clasp status。执行结果如下。
$ clasp status
Not ignored files:
└─ path/to/clasp_test/appsscript.json
└─ path/to/clasp_test/hello.js
Ignored files:
└─ path/to/clasp_test/.clasp.json
└─ path/to/clasp_test/.claspignore
└─ path/to/clasp_test/test_claspignore.js
我能够阻止test_claspignore.js 被上传。
当我实际推送时,我只能推送带有Not ignored files 的文件。
$ clasp push
└─ path/to/clasp_test/appsscript.json
└─ path/to/clasp_test/hello.js
Pushed 2 files.
如果要检查是否真的上传到项目中,执行命令clasp open。运行它时,将打开一个浏览器,您可以检查该项目。
可以看到已经上传了。
从项目下载文件
现在尝试下载项目中的文件。在下载之前,我尝试创建一个用于下载的文件。
运行命令clasp pull进行下载。运行结果如下。
$ clasp pull
Warning: files in subfolder are not accounted for unless you set a 'path/to/clasp_test/.claspignore' file.
Cloned 3 files.
└─ path/to/clasp_test/test_pull.js
└─ path/to/clasp_test/hello.js
└─ path/to/clasp_test/appsscript.json
在本地开发现有项目
这一次,我介绍了如何在本地创建一个新项目并进行开发。但是,有时您可能想在本地开发已经创建的项目。在这种情况下,您可以通过执行命令clasp clone 来解决它。
您要在本地开发的项目可以通过项目 URL 或脚本 ID 指定。
$ mkdir clasp_clone_test && cd clasp_clone_test
$ clasp clone https://script.google.com/home/projects/<scriptId>/edit
Warning: files in subfolder are not accounted for unless you set a 'path/to/clasp_clone_test/.claspignore' file.
Cloned 1 file.
└─ path/to/clasp_clone_test/appsscript.json
Not ignored files:
└─ path/to/clasp_clone_test/appsscript.json
Ignored files:
└─ path/to/clasp_clone_test/.clasp.json
题外话
在 GitHub 上管理
使用 clasp 后,我认为不能选择和推送特定文件会是一个问题。我认为使用 clasp 命令管理文件会很好,但我个人发现直接在 GitHub 上管理它们更容易。
使用 TypeScript 进行开发
从 1.5.0 版本开始,可以使用 TypeScript 开发 clasp。
以下是帮助您轻松入门的详细说明。
最后
这次,我们总结了如何使用本地开启 GAS 开发的 CLI 工具 CLASP!
现在我们可以在本地开发,我认为 GAS 开发的范围进一步扩大。如果您有兴趣,请尝试使用它!
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308628057.html