介绍

使用 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
    • 这是项目清单文件

创建项目时文件的内容如下。

.clasp.json
{"scriptId":"<scriptId>","rootDir":"path/to/clasp_test"}
应用脚本.json
{
  "timeZone": "America/New_York",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

创建文件

创建项目后,让我们编写 GAS!这一次,我尝试创建一个如下所示的文件。

你好.js
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.jsonIgnored files中。

对了,如果有不想上传的文件,可以通过创建.claspignore来解决。该文件与 Git 中的.gitignore 具有相同的作用。这一次,我想尽量不要实际推送,或者创建.claspignoretest_claspignore.js

test_clapignore.js
function test_claspignore() {
    Logger.log("Test .claspignore")
}
.clapignore
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。运行它时,将打开一个浏览器,您可以检查该项目。

ローカルでGASの開発を可能にするCLIツールclaspを使ってみた

可以看到已经上传了。

从项目下载文件

现在尝试下载项目中的文件。在下载之前,我尝试创建一个用于下载的文件。

ローカルでGASの開発を可能にするCLIツールclaspを使ってみた

运行命令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

相关文章: