1

我正在使用Serverless Framework & Azure Functions. 那里的例子非常简单。但是当我试图更进一步时,我遇到了问题。目前正在学习AWS Lambda并尝试在Azure Functions.

这样做的目标是:

1) 将函数实现为es6类,然后使用 webpack 构建项目。

2)找到一个正确的项目结构,这更有意义。

3) 遵循 SoC 模式。

我创建了一个github项目https://github.com/GeekOnGadgets/serverless-azure-settings,当我尝试构建这个项目serverless package时,它会创建.serverless文件夹,里面有.zip文件(编译后的版本)。据我所知,当您运行时会部署到天蓝色serverless deploy。但是当我在 Azure 上检查时,该函数只是开发代码,而不是编译代码(请参阅下面的代码)。

有人可以帮忙吗?任何建议表示赞赏。

import Settings from './src/Settings/Settings'

module.exports.settings = (event, context, callback) => {
    let settings = new Settings();

    const response = {
        statusCode: 200,
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify(settings.dev()),
    };
    callback(null, response);
}
4

2 回答 2

0

实际上,javascript azure 函数在 nodejs 上运行,因此 commonjs 模块是自然格式。Node 本身也支持大部分 ES6,尽管 Node 的 Functions 版本可能不是最新的。

但是,当前在 node_modules 中加载所有依赖项存在速度问题。这是由于文件访问,因此存在一种解决方法,将所有内容捆绑到 package.json -> main 指向的单个脚本中。

我无法评论它如何适合无服务器,但也许这将有助于澄清。

于 2017-05-03T08:53:10.267 回答
0

据我所知,Node.js 仍然不支持模块的导入/导出 ES6 语法。另请参见此处

尝试一个新的部署,从

import Settings from './src/Settings/Settings'

const Settings = require('./src/Settings/Settings')
于 2017-05-03T13:26:56.227 回答