库是一个脚本项目,其函数可在其他脚本中重复使用。

获取图书馆的访问权限

要在项目中添加库,您必须至少设置视图级库 访问。如果您不是相应库的作者 包含,联系作者并申请访问权限。

您需要要包含的库的脚本 ID。如果您 那么您可以在项目设置页面上找到脚本 ID 页。

向脚本项目添加库

  1. 在 Apps 脚本编辑器左侧的“库”旁边,点击“添加” 库
  2. 在“脚本 ID”列字段中,粘贴库的脚本 ID。
  3. 点击查找
  4. 点击版本下拉菜单,然后选择库的版本 使用。
  5. 检查默认的“标识符”这个名称就是您要 与此库一起使用这是您的脚本用来 参考库例如,如果您将此属性设置为 Test,则可以 按如下方式调用该库的方法:Test.libraryMethod()
  6. 点击添加

使用库

像使用默认服务一样使用包含的库。对于 例如,如果 Test 是您媒体库的标识符,请输入 Test,后跟英文句点,用于查看库中的方法列表。

您可以通过以下方式打开所含库的参考文档 具体步骤:

在脚本编辑器左侧,点击库名称旁边的“更多”图标 >在新标签页中打开

移除库

在脚本编辑器左侧,点击库名称旁边的“更多”图标 >移除 >移除库

更新库

您可以更改库的版本或更新其标识符。

  1. 在编辑器左侧的“库”下,请点击相应库的名称
  2. 进行更改,然后点击保存

创建和共享媒体库

如需将脚本项目作为库使用和共享,请按以下步骤操作。

  1. 创建版本控制的部署 您的脚本。
  2. 至少与库的所有潜在用户共享数据视图级别的访问权限。
  3. 为这些用户提供脚本 ID,您可以在项目 设置 页面。

最佳做法

下面是编写库时需要遵循的一些准则:

  1. 请为您的项目选择一个有意义的名称,因为它将用作 默认标识符。
  2. 如果您不希望脚本中的一个或多个方法可见( 便于使用),您可以在该方法的名称末尾添加 下划线。例如 myPrivateMethod_()
  3. 库用户只能看到可枚举的全局属性。其中包括 声明、在具有 var 的函数外部创建的变量以及明确设置的属性 全局对象。例如,enumerable 设置为 falseObject.defineProperty() 创建的符号可供您在库中使用,但您的用户无法访问此符号。
  4. 如果您希望库用户使用脚本编辑器的自动补全功能, 自动生成的文档,必须具有 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 部署。拥有编辑者级别的任何人 对脚本的访问权限可以使用 head 部署。

调试库

当您在包含您所需的库的项目中使用该调试程序时, 可以单步进入所包含库的函数。验证码的显示位置 正确的版本。