node.js - npm 从不同目录运行多个服务,包括无服务器离线
问题描述
目前
- 我有一个本地测试环境设置。
- 我正在尝试迁移到无服务器并设置无服务器离线以进行本地测试。
我无法让我现有的客户端 + 服务器与serverless-offline一起运行。
目录:
root:
- package.json
- /my-project
-- /serverless
--- ...
-- handler.js
-- serverless.yml
PACKAGE.JSON <-- 同时使用来同时运行多个服务
"scripts": {
"start": "concurrently \"npm start --prefix client\" \"node index.js\" \"serverless offline start\""
}
问题
在根目录运行 npm start 时,返回以下错误:
Serverless command "offline" not found. Did you mean "config"? Run "serverless help" for a list of all available commands.
注意:当我运行serverless offline start
时\my-project
,命令执行成功并且serverless-offline运行。
问题
- 有没有办法在or
serverless offline start
的上下文中运行命令/my-project
- 我需要重新组织我的目录结构吗?
笔记
我已经尝试从不同的存储库回答运行 npm 脚本,但未能使其正常工作。也许是因为我试图运行一个命令(即无服务器)而不是来自不同目录上下文的脚本文件。
解决方案
在无服务器中,要添加无服务器“子”项目,您必须在无服务器主文件中指明属于其他包的功能。
例如,如果你有结构。
root:
----serverless.yml
----handler.js
----package.json
----index.functions.yml
----src/
-------/serverless.yml
-------/package.json
-------/handler.js
-------/index.functions.yml
-------/handler.js
然后,你必须在你的主 serverless.yml 文件中有这样的内容:
service: main-serverless
plugins:
- serverless-offline
functions:
- ${file(./index.functions.yml)}
- ${file(./src/index.functions.yml)}
如果你想操作包内部,你必须尝试使用 lerna,用它你可以处理来自根目录的嵌套包。
希望能帮助到你。
推荐阅读
- java - 如何在Java中获取方法的调用者名称
- javascript - Node js twillio webhook - 拨出电话不起作用
- react-native - androidtv中的android媒体播放器不同步
- javascript - MySQL 为 NodeJS 异步查询准备的语句?
- email - 如何让 Windows 10 询问我从 mailto 链接打开哪个电子邮件应用程序?
- css - 如何将相同样式的组件模式应用于已经存在的多个 svg 组件?
- mysql - AWS RDS 没有从 Ubuntu 服务器到主机的路由
- node.js - 在 nodejs 中导入路径而不是在 server.js 中需要它
- node.js - 从 npm 模块导入成功,使用 http 而不是使用 https [在浏览器客户端/js 中导入]
- vb.net - 获取 Chrome 网址