【发布时间】:2019-11-19 11:54:43
【问题描述】:
我有一个 Azure 函数(它使用 NodeJS),我试图从中使用另一个团队发布的 npm 模块。在 npm 添加有问题的模块后,我尝试像这样使用它:
import * as Model from "@thing/app-model";
...
const appModel: Model.TheModel = new Model.TheModel([]);
但是,当我尝试运行 Azure 函数时,我收到此错误:
[error] Worker was unable to load function pump: 'SyntaxError: Unexpected token export'
我可以在网上找到的与该错误消息相关的结果表明,此错误通常表明我正在尝试使用 ES6 模块,这是 Node 不支持的(相反我应该使用 CommonJS 模块)。挑战在于我认为该模块是一个 CommonJS 模块。生成模块的项目的 tsconfig.json 在 compilerOptions 中有这一行:
"module": "commonjs"
为了验证或排除 ES6 与 CommonJS 的问题,如果我在 Azure Function 的 node_modules 目录中查看导入的模块,有没有办法通过查看它来判断它是 ES6 模块还是 CommonJS 模块?
谢谢!
【问题讨论】:
-
查看相关问题 stackoverflow.com/questions/42708484/…,以及链接到此处的博客文章 (medium.com/webpack/…),以及现已删除的文档 github.com/nodejs/node-eps/blob/…,看看这是否对您有帮助。我没有时间提炼出正确的答案,而且只有链接的答案是不可接受的,所以我现在只能指出你的意思。
标签: javascript node.js typescript node-modules es6-modules