库是一种脚本项目,其函数可在其他脚本中重复使用。
获得对库的访问权限
如需将库添加到项目中,您必须至少拥有对该库的查看权限。如果您不是所要添加库的作者,请联系作者并请求访问权限。
您需要提供要添加的库的脚本 ID。获得对该库的访问权限后,您可以在项目设置
页面上找到脚本 ID。将库添加到脚本项目中
- 在 Apps Script 编辑器的左侧,点击“库”旁边的“添加库”图标 。
- 在“脚本 ID”字段中,粘贴该库的脚本 ID。
- 点击查找。
- 点击版本下拉菜单,然后选择要使用的库版本。
- 检查默认的“标识符”名称是否是您要与此库搭配使用的名称。这是您的脚本用来引用库的名称。例如,如果您将其设为
Test
,则可以按如下方式调用该库的一个方法:Test.libraryMethod()
。 - 点击添加。
使用库
像使用默认服务一样使用包含的库。例如,如果 Test
是库的标识符,请输入 Test
后跟一个英文句点,以查看库中的方法列表。
您可以按照以下步骤打开所包含的库的参考文档:
在脚本编辑器的左侧,在相应库的名称旁边,依次点击“More”(更多)图标
> Open in a new tab(在新标签页中打开)。移除库
在脚本编辑器的左侧,点击库名称旁边的“更多”图标
> 移除 > 移除库。更新库
您可以更改库的版本或更新其标识符。
- 在编辑器左侧的“库”下,点击相应库的名称。
- 进行更改,然后点击保存。
创建和共享库
如需将脚本项目作为库使用和共享,请按以下步骤操作。
- 为脚本创建版本化部署。
- 与该库的所有潜在用户至少共享查看级访问权限。
- 向这些用户提供脚本 ID,该 ID 位于项目设置 页面上。
最佳做法
以下是编写库时需要遵循的一些准则:
- 为您的项目选择一个有意义的名称,因为当其他人包含您的库时,该名称会用作默认标识符。
- 如果您不希望库用户看到(也无法使用)脚本的一个或多个方法,可以将方法名称以下划线结尾。例如
myPrivateMethod_()
。 - 库用户只能看到可枚举的全局属性。这包括函数声明、使用
var
在函数外部创建的变量,以及在全局对象上显式设置的属性。例如,将enumerable
设为false
的Object.defineProperty()
会创建一个您可以在库中使用的符号,但您的用户无法访问此符号。 如果您希望库用户能够使用脚本编辑器自动补全功能和自动生成的文档,则必须为所有函数提供 JSDoc 风格的文档。示例如下:
/** * Raises a number to the given power, and returns the result. * * @param {number} base the number we're raising to a power * @param {number} exp the exponent we're raising the base to * @return {number} the result of the exponential calculation */ function power(base, exp) { ... }
资源作用域
使用库时,有两种类型的资源:共享库和非共享资源。共享资源意味着库和包含脚本都具有对资源的同一实例的内置访问权限。下图以用户属性为例,展示了共享资源:
非共享资源意味着库和包含的脚本都只对其资源实例具有内置访问权限。但是,库可以通过具有对非共享资源进行操作的显式函数来提供对它们的未共享资源的访问权限。以下示例展示了您要在库中添加的函数,以公开其脚本属性:
function getLibraryProperty(key) {
return ScriptProperties.getProperty(key);
}
下图使用脚本属性示例说明了非共享资源:
下表列出了共享和不共享的资源,供您参考:
资源 | 已分享* | 未分享** | 备注 |
---|---|---|---|
锁定 | 在库中创建实例时,同一实例对包括脚本在内的所有用户可见。 | ||
脚本属性 | 在库中创建时,同一实例对所有人(包括脚本)都是可见的。 | ||
缓存 | 在库中创建时,同一实例对所有人(包括脚本)都是可见的。 | ||
触发器 | 库中创建的简单触发器不会由包含脚本触发。 | ||
ScriptApp | |||
UiApp | |||
用户属性 | |||
日志记录器和执行转写 | |||
网站、表格和其他容器 | 调用 getActive() 会返回包含脚本的容器。 |
||
MailApp 和 GmailApp | |||
* 这意味着该库没有自己的功能/资源实例,而是使用调用它的脚本创建的实例。
** 这意味着库有自己的资源/功能实例,并且使用该库的所有脚本共享并访问该实例。 |
测试库
如需测试您的库,请使用主部署。对脚本拥有编辑者级访问权限的任何人都可以使用 head 部署。
调试库
在包含库的项目中使用调试程序时,您可以进入所包含库的函数。代码会以“只能查看”模式显示在调试程序中,并且显示正确的版本。