28

我正在尝试使用clasp在本地构建 GAS 项目。

任何本地安装的 IDE 都是对 Google 脚本编辑器的巨大改进,因此该工具看起来很有前途。不幸的是,GAS 服务的自动完成功能似乎没有包含在包中。

文档说:

Apps Script CLI 使用 TypeScript 在开发时提供自动补全和 linting。使用 Visual Studio Code 之类的 IDE 进行 TypeScript 自动完成。

在完成这些步骤并安装所有必需的依赖项后,我仍然无法让自动完成功能正常工作。当我clasp pull为现有项目执行命令时,它将“.gs”扩展名转换为“.js”。自动完成建议只是解析现有代码的结果。

例如,如果我sheet.getRange()在代码中的某处调用,则该getRange()方法将在建议中弹出,但我无法列出可用的选项,例如PropertiesService,除非它已在我的代码中使用。

有没有人为 Google Apps 脚本启用自动完成功能而幸运?

4

5 回答 5

28

我找到了部分可行的解决方案,但它可能不适用于其他软件。以下步骤适用于 Visual Studio Code:

  1. 安装包含 GAS 类型定义的 NPM 包,使用

    https://www.npmjs.com/package/@types/google-apps-script
    
  2. 在本地保存的脚本中,创建一个“.js”文件并键入

    import 'google-apps-script';
    
于 2018-03-05T15:32:21.310 回答
14

对于支持基于tsc/的 Typescript 自动完成的 IDE/扩展,此答案与已接受的答案略有不同tsserver

  • 安装 TypeScript 和 @types/google-apps-script

  • 在本地项目目录中创建一个jsconfig.json文件:

    { 
        "compilerOptions": {
            "checkJs": true
          }
    }    
    
  • 或者,如果您typescript与 javascript 一起使用,则创建一个tsconfig.json

    { 
        "compilerOptions": {
            "allowJs": true,
            "checkJs": true,
            "types": ["google-apps-script"]
          }
    }    
    
  • .claspignore如果您使用 clasp 并且文件位于本地目录 中,则在 中包含两个文件名。

  • 如果该配置位于您的主/父目录中,您也可以全局使用此配置中的任何一个,因为 tsc 从项目/本地文件夹到根目录搜索此配置(在这种情况下,您不需要将其包含在 中.claspignore)。

于 2018-08-09T16:40:32.663 回答
6

如果您使用任何 JetBrains IDE:

转到Languages & Frameworks -> JavaScript -> Libraries -> Download...并下载库google-apps-script

在此处输入图像描述

于 2019-12-14T21:01:57.533 回答
6

import.js尝试在.claspignore (docs)中包含文件名。

这应该可以节省每次推送之前删除文件的一些麻烦。

于 2018-04-21T22:16:44.337 回答
2

这是谷歌开发者在“ TU17: Enhancing the Google Apps Script Developer Experience with clasp and TypeScript ”视频中提供的答案。

将 JavaScript 文件添加到您的项目中,例如“appscript.js”,并在该文件中添加:

import "google-apps-script";

保存该文件,但确保在使用.claspignore文件将文件推回项目时忽略它。

于 2019-09-05T16:59:36.810 回答