标签: clasp

Google AppScript 项目中的 TypeScript 类顺序

假设我们在 2 个单独的文件中有 2 个简单的 TypeScript 类:

  • B.ts:
namespace A{
 export abstract class ItemBase {
  id:number=432;
 }
}
Run Code Online (Sandbox Code Playgroud)
  • C.ts
///<reference path="B.ts"/>
namespace A{
 export class ItemType extends A.ItemBase{}
}
Run Code Online (Sandbox Code Playgroud)
  • 并调用 Code.ts 中的代码:
///<reference path="C.ts"/>
let a:A.ItemType=new A.ItemType();
Run Code Online (Sandbox Code Playgroud)

使用扣环推动后一切正常

但是,如果我将 C.ts 文件的名称更改为 AA.ts,则会出现错误:

TypeError: Cannot read property "prototype" from undefined. (row 14, file „AA”).

如果我不实例化 Code.ts 中的 ItemType 类,问题甚至存在。

ts2gas 似乎extends在代码转译过程中没有考虑关键字并将输出的 gs 文件设置为相应的 ts 文件顺序。因此,如果我们在扩展类文件之前命名扩展类文件(按字母顺序),我们会得到一个错误。

在开发过程中,我是否必须注意 ts 文件名的正确顺序?我是否必须附加某种处理 gs 文件加载顺序的机制?当 gs 文件已经被转译时,这对我来说似乎是多余的。转译过程 (ts2gas) 应该处理以 TypeScript 方式使用的正确类扩展策略。如果 ts2gas 可以使用原型将 TypeScript …

google-apps-script typescript clasp

3
推荐指数
1
解决办法
517
查看次数

我的扣子重新安装有什么问题?

我有一台运行 macOS 11.4 的 Mac。我在具有相同操作系统的同一台机器上(广泛地)使用了clasp,但最近我不得不擦除我的 SSD 并重新安装所有东西。

我已经使用 macOS 安装程序 (node-v14.17.3.pkg) 安装了 node.js,其中包括 npm。

然后我通过带有sudo npm install @google/clasp -g.

上述过程反映了我第一次安装时所做的事情,尽管它们本来是早期版本(可能是一年前)。

现在,当我尝试运行 clasp(带或不带选项)时出现错误,我希望有人可以帮助诊断?

Error: ENOENT: no such file or directory, open 'package.json'
    at Object.openSync (fs.js:498:3)
    at Object.readFileSync (fs.js:394:35)
    at file:///usr/local/lib/node_modules/@google/clasp/node_modules/ts2gas/src/index.js:35:35
    at ModuleJob.run (internal/modules/esm/module_job.js:169:25)
    at async Loader.import (internal/modules/esm/loader.js:177:24)
    at async Object.loadESM (internal/process/esm_loader.js:68:5) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: 'package.json'
}
Run Code Online (Sandbox Code Playgroud)

google-apps-script clasp

3
推荐指数
1
解决办法
183
查看次数

Google Apps Script - 扁平的项目扣结构

我正在尝试开始编辑绑定到 Google 表格的 Google Apps 脚本。

我不明白记录在案的部分

Structure Code. clasp automatically converts your flat project on script.google.com into folders. For example:
Run Code Online (Sandbox Code Playgroud)

在 script.google.com 上:

???测试/幻灯片.gs

???测试/sheets.gs

本地:

???测试/

? ?? 幻灯片.gs

? ?? 表格.gs

当我在 script.google.com 上看到我的项目时,它们只是按名称列出,我看不到任何文件夹结构。

我能够克隆 PROJECT_ID 并下载了 3 个文件

克隆了 3 个文件。

?? 应用脚本.json

?? 代码.js

?? 旧代码.js

正好到我运行 clasp 命令的文件夹。

我看不到它是如何为我创建文件夹的。

我应该为每个脚本创建一个文件夹吗?

提前致谢

google-apps-script clasp

2
推荐指数
1
解决办法
716
查看次数

Clasp - 在 Typescript 中使用环境变量机密进行 Google Apps 脚本开发

有没有一种简单的方法可以不在 Google Apps 脚本项目中对机密进行硬编码?

我正在使用 clasp 并按照本指南中所述在 Typescript 中进行开发。

目前,我的脚本(Main.ts)将有一些硬编码的秘密,我不希望这些秘密出现在我的版本控制中,并且理想情况下可以根据某些环境变量进行交换。

google-apps-script typescript clasp

2
推荐指数
1
解决办法
988
查看次数

缩写冗长的TypeScript类型

我正在使用Typescript(通过clasp工具)开发Google Apps脚本(GAS).

我通过运行导入了类型定义npm i -S @types/google-apps-script.

有些类型很长,例如:

let sheet: GoogleAppsScript.Spreadsheet.Sheet
Run Code Online (Sandbox Code Playgroud)

有没有办法在文件中定义缩写?例如,

declare Sheet = GoogleAppsScript.Spreadsheet.Sheet
Run Code Online (Sandbox Code Playgroud)

google-apps-script typescript clasp

1
推荐指数
1
解决办法
98
查看次数

在linux上使用clasp时缺少node-v57-linux-x64-glibc/grpc_node.node

我正在使用clasp来构建一个附加的gmail.

我创建了一个空文件夹并运行此命令:

扣住登录

我有这样的错误

错误:未安装gRPC二进制模块.这可以通过运行"npm rebuild"修复原始错误:找不到模块'/ usr/lib/node_modules/@ google/clasp/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node .节点'

我发现了一个问题,但它不是我的解决方案.

我该怎么办?

谢谢.

add-on node.js google-apps-script gmail-addons clasp

0
推荐指数
1
解决办法
1442
查看次数