我为我的 google 表格脚本创建了一个网络应用程序。 我用版本 1 部署了它并且它有效
现在我想进行持续更改并部署我的更改, 我是否需要为我部署的每个更改增加版本?或者我可以更新当前版本吗?
此外,有没有办法以编程方式获取当前版本?
最佳答案
对于你的情况,我想介绍一下,因为我有一个我也在使用的解决方法。
对于问题1:
一般情况下,当更新Web Apps的脚本时,需要增加项目版本,用新版本重新部署Web Apps。
但是如果您想在不增加版本的情况下部署 Web 应用程序,作为解决方法,您可以使用库来实现它。此解决方法的流程如下。
- 创建 2 个项目。
- 一个是部署 Web Apps 的项目。
- 假设这是您现在正在使用的项目。
- 另一个项目用作库。请将其创建为独立项目。
- 请创建一个版本。
- 在脚本编辑器上
- 文件 -> 管理版本...
- 输入描述后,请点击“保存新版本”。
- 在脚本编辑器上
- 请复制此脚本 ID。这用于安装库。
- 请创建一个版本。
- 一个是部署 Web Apps 的项目。
- 用于部署 Web 应用程序的项目。
- 请将库项目安装为库。
- 在脚本编辑器上
- 资源 -> 图书馆...
- 对于“添加库”,请输入库项目的文件 ID。
- 开启“开发模式”。
- 将版本设置为保存的版本。
- 在此示例中,请将“Identifier”设置为“lib”。
- 在脚本编辑器上
- 请复制并粘贴以下函数。在这个项目中,脚本只有这个。 复制粘贴后请保存工程
函数 doGet(e) {返回 lib.main(e)}
- 请将网络应用部署为新版本。
- 此设置后,您无需修改此项目。
- 请将库项目安装为库。
- 对于用作库的项目。
- 请复制并粘贴以下函数。
函数 main(e) {return yourfunction(e)}
yourfunction(e)
是您正在使用的项目中的函数。
- 请复制并粘贴以下函数。
在此解决方法中,当您要修改脚本时,请修改库项目。这样,当库更新时,部署Web Apps的项目会自动更新,因为在安装库时打开了“开发模式”。此更新也反射(reflect)到 Web 应用程序。所以Web Apps的脚本可以在不增加版本的情况下进行更新。
作为示例,进行上述设置后两个项目的脚本如下:
对于部署Web Apps的项目。
function doGet(e) {
return lib.main(e);
}
对于用作库的项目。
function main(e) {
return yourfunction(e);
}
function yourfunction(e) {
do something: The script which is run when users accessed to Web Apps.
return something
}
对于问题2:
为了检索项目的当前版本,您可以使用 Apps Script API。 tehhowch 也回答了这个问题。在最近的更新中,用户必须能够检索和创建项目版本。通过使用它,您可以实现这一目标。所需的范围是 https://www.googleapis.com/auth/script.projects
或 https://www.googleapis.com/auth/script.projects.readonly
.
GET https://script.googleapis.com/v1/projects/### scriptId ###/versions
如果要使用脚本创建新版本,可以使用以下端点。
POST https://script.googleapis.com/v1/projects/### scriptId ###/versions
请求正文是
{
"versionNumber": 3,
"description": "sample description"
}
引用文献:
如果这对您没有用,我很抱歉。
关于google-apps-script - 每次部署的应用程序脚本网络更改版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170665/