外部依赖项
外部依赖是一个库,其中包含您自己无法实现或不想实现的代码。例如,您可以使用官方库作为外部服务或者数据结构或算法的自定义实现。
Atlas App Services 自动转换依赖项,并且还支持内置 Node.js 模块。
注意
创建您自己的模块
尽管大多数 npm 模块由第三方编写,但您也可以创建并发布自己的 npm 模块来容纳特定于应用程序的逻辑。您可以将模块提供给 Node.js 社区,也可以保留以供私人使用。有关更多信息,请查看 npm 向注册表贡献包 的指南 。
添加外部软件包
要导入和使用外部依赖,首先需要将依赖项添加到应用程序中。您可以按名称添加包,也可以上传依赖项目录。
重要
覆盖现有依赖项
您一次只能使用一种方法来指定应用可以使用的外部包。用于指定依赖项的最新方法是数据源,并且会覆盖之前的规范。
例如,通过用户界面按名称添加的包会覆盖您之前添加的同一包的任何副本,包括上载的依赖项目录中的副本。
按名称和版本添加软件包
您可以从 npm 注册表 添加包 通过名称添加到您的应用程序。您可以添加特定版本或使用最新版本。
上传依赖项目录
您可以将压缩的 node_modules
包目录上传到应用。压缩的依赖目录不得超过 15MB。
在本地安装外部依赖
要上传外部依赖项,首先需要一个本地 node_modules
文件夹,其中包含至少一个 Node.js 包。可以使用以下代码片段在本地安装要上传的依赖项:
npm install <package name>
如果 node_modules
文件夹尚不存在,则此命令会自动创建它。
注意
其他安装方法
您还可以配置 package.json
并运行 npm install
命令来安装 package.json
中列出的所有软件包(及其依赖项)。
要了解有关 npm 和node_modules
的更多信息,请参阅 npm 文档 。
在函数中导入软件包
可以导入已添加到应用中的内置模块和外部软件包,然后在函数中使用它们。要导入一个软件包,请使用函数体中的包名称来调用 require()
。
重要
从哪里导入模块?
Node.js 项目通常会在每个文件的全局范围内放置 require()
调用,但 App Services 不支持此模式。必须 将 App Services require()
调用置于函数作用域内。
导入完整模块
exports = () => { const R = require("ramda"); return R.map(x => x*2, [1,2,3]); }
导入模块子文件夹
exports = function(arg){ const cloneDeep = require("lodash/cloneDeep"); var original = { name: "Deep" }; var copy = cloneDeep(original); copy.name = "John"; console.log(`original: ${original.name}`); console.log(`copy: ${copy.name}`); return (original != copy); };