node.js - TypeScript Ghostscript 导入更改为 gs_
问题描述
好吧,这有点奇怪,我有一个在 Google Cloud 环境中运行的云功能,用 TypeScript 写在我的本地机器上,它使用了我在 package.json 中放入的 Ghostscript 参考,如下所示:
"gs": "https://github.com/sina-masnadi/node-gs/tarball/master",
导入到我的函数文件中,例如:
import gs from "gs";
我的 TypeScript 函数看起来像这样:
await new Promise((res, rej) => {
gs()
.batch()
.nopause()
...follows on from this
firebase deploy --only functions
但是,当我使用编译器部署我的函数时,然后将.js
文件放在一起并上传(如您所料)。只有在.js
它上传的功能中,它才会将对 Ghostscript 导入的引用更改为以下内容:
const gs_1 = require("gs");
然后函数代码为:
yield new Promise((res, rej) => {
gs_1.default()
.batch()
.nopause()
...follows on from this
然后在云中运行此功能时,我会打印以下错误:
TypeError: gs_1.default is not a function
有谁知道它为什么要更改名称,它可能是保留名称吗?
更新和修复
将 ghostscript 库的导入更改为:
const gs = require("gs")
在@Nicholas Tower 的帮助下解决了这个问题
解决方案
我正在创建一个社区 Wiki 答案,以便将来参考类似问题的答案。根据 Nicholas Tower 的评论,这个问题的解决方案是重构 gs 库的导入:
import gs from "gs";
至:
const gs = require("gs")
有关更多信息,请参阅处理 Firebase 函数依赖项处理的文档页面。
推荐阅读
- docker - 为什么不能在个人修改的 CentOS docker 映像中运行 cron 作业?
- c++ - C++公历年份显示算法
- flutter - 我如何包装小部件列表?
- python - 如何在用户输入的位置找到按钮并在pygame中更改它的颜色?
- php - 提交时无法获取引导下拉列表的值
- java - 将文件移动到新包后出现 Java 错误
- kotlin - Kotlin Inheritance - 扩展具有相同方法名称的 JVM 类和接口
- javascript - 如何让这个 onfido cordova 插件正确初始化?
- node.js - 图片未返回用户个人资料
- php - 将 DATE_FORMAT 转换为 Ymd?使用 Larave Eloquent 原始选择