在本地安装的IDE中启用Google Apps脚本的自动填充功能

时间:2018-02-27 18:47:25

标签: google-apps-script visual-studio-code clasp

我尝试使用clasp

在本地构建GAS项目

https://github.com/google/clasp

任何本地安装的IDE都比Google的脚本编辑器有了很大的改进,因此该工具看起来非常有前景。遗憾的是,GAS服务的自动完成功能似乎并未包含在软件包中。

文档说:

  

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

完成上述步骤并安装所有必需的依赖项后,我仍然无法使自动完成功能正常工作。当我执行" clasp pull"对现有项目的命令,它转换" .gs"扩展到" .js"。自动填充建议只是解析现有代码的结果。

例如,如果我在代码中的某处调用了sheet.getRange(),那么' getRange()'方法会在建议中弹出,但我不能列出PropertiesService的可用选项,除非它已在我的代码中使用过。

是否有人为Google Apps脚本启用自动填充功能有好运?

5 个答案:

答案 0 :(得分:13)

我发现解决方案有点可行,但它可能不适用于其他软件。以下步骤适用于Visual Studio代码:

1)安装包含GAS类型定义的NPM包

https://www.npmjs.com/package/@types/google-apps-script

2)在本地保存的脚本中,创建一个“.js”文件并输入

import 'google-apps-script';

唯一的问题是在将更新推送到服务器之前必须删除导入。

答案 1 :(得分:9)

此答案与其他IDE的接受答案略有不同:

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

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

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

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

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

答案 2 :(得分:6)

怎么样:

import.js中包含文件名(例如.claspignore)。

每次推送前都应该省去一些麻烦删除文件。

答案 3 :(得分:0)

这是谷歌开发人员在以下视频中提供的答案:

TU17: Enhancing the Google Apps Script Developer Experience with clasp and TypeScript

将一个.js文件(例如appscript.js)添加到您的项目中,然后在该文件中添加以下代码:

import "google-apps-script";

保存该文件,但在使用.claspignore文件将文件推回到项目中时,请务必忽略该文件。

答案 4 :(得分:0)

如果使用任何JetBrains IDE:

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

enter image description here