MongoDB Stitch 中的 import/export 是否包含依赖项?

Are dependencies included in the import/export in MongoDB Stitch?

今年早些时候试过MongoDB Stitch,当时感觉还不是成品(比如). I am giving it another go, and this time I am interested to see how I could create automated tests for my Stitch functions using Jest ()。

我注意到函数部分有一个 DependenciesBeta 选项卡。在这里,可以将 NPM 模块压缩到压缩包中,它们将在 Stitch JS 环境中可用。我想知道我是否可以使用它来规避我在函数系统中遇到的导入困难——相反,我可以从函数对依赖项进行(未经测试的)轻量级调用,然后只测试依赖项。

但是,我希望能够使用控制台命令自动导入我的应用程序,以便在 CI 管道中自动部署。为此,import/export 还需要包含依赖项,但 the file-format docs 不提及依赖项。作为应用程序导入的一部分,是否支持从控制台同步依赖项?

Is there any support for syncing dependencies from the console, as part of an app import?

是的,您可以使用 mongodb-stitch-cli (v1.10+) 导入依赖项。

上传外部依赖:

  • 首先需要一个包含至少一个Node.js包的本地node_modules文件夹。如果 node_modules 文件夹不存在,npm install <package> 将自动创建它。

  • 接下来您需要将它们打包到存档中,以便将它们上传到 Stitch:

    tar -czf node_modules.tgz node_modules/
    

    其他支持的 formats/extensions 是:.zip.tar.gz.tgz

  • 接下来您可以将存档放入the functions directory in the application file schema。即

    ├── functions/
    │   └── <function name>/
    │       ├── config.json
    │       └── source.js
    │   └── node_modules.tgz
    
  • --include-dependencies执行导入命令,即:

    stitch-cli import --app-id <APP_ID> --path ./your_app --include-dependencies
    
    Creating draft for app...
    Draft created successfully...
    Importing app...
    Deploying app...
    Deploying app...
    Done.
    Importing hosting assets...
    Done.
    

请注意,目前 stitch-cli 尚不支持导出依赖项。

另请参阅 Stitch: Upload External Dependencies 从 UI 上传。