我尝试使用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脚本启用自动填充功能有好运?
答案 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)