npm 运行 多个服务,包括来自不同目录的无服务器离线
npm run multiple services including serverless offline from different directories
目前
- 我有一个本地测试环境设置。
- 我正在尝试迁移到 serverless 并设置 serverless-offline 进行本地测试。
我无法将我现有的客户端 + 服务器连接到 运行,同时 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\""
}
问题
在根目录下运行ning npm start时,返回如下错误:
Serverless command "offline" not found. Did you mean "config"? Run "serverless help" for a list of all available commands.
注意:当我在\my-project
运行serverless offline start
时,命令执行成功并且serverless-offline运行s .
问题
- 有没有办法在
/my-project
或 的上下文中 运行 serverless offline start
命令
- 我需要重新组织我的目录结构吗?
注释
我已经尝试回答 但没能成功。也许是因为我正在尝试 运行 命令(即无服务器)而不是来自不同目录上下文的脚本文件。
在无服务器中,要添加无服务器“子”项目,您必须在无服务器主文件中指明属于其他包的功能。
例如,如果您有结构。
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,你可以使用它来处理根目录中的嵌套包。
希望对您有所帮助。
这个问题与无服务器无关,而是我在 package.json 中设置脚本的新手经验。父项目文件夹中有 2 个选项 运行 serverless offline start
。
选项 1
在调用 serverless offline start
之前插入 cd my-project &&
"scripts": {
"start": "concurrently \"npm start --prefix client\" \"node index.js\" \"cd my-project && serverless offline start\""
}
选项 2
将 --prefix my-project
添加到 serverless offline start
命令。 注意:我没有测试选项2
"scripts": {
"start": "concurrently \"npm start --prefix client\" \"node index.js\" \"serverless offline start --prefix my-project\""
}
目前
- 我有一个本地测试环境设置。
- 我正在尝试迁移到 serverless 并设置 serverless-offline 进行本地测试。
我无法将我现有的客户端 + 服务器连接到 运行,同时 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\""
}
问题
在根目录下运行ning npm start时,返回如下错误:
Serverless command "offline" not found. Did you mean "config"? Run "serverless help" for a list of all available commands.
注意:当我在\my-project
运行serverless offline start
时,命令执行成功并且serverless-offline运行s .
问题
- 有没有办法在
/my-project
或 的上下文中 运行 - 我需要重新组织我的目录结构吗?
serverless offline start
命令
注释
我已经尝试回答
在无服务器中,要添加无服务器“子”项目,您必须在无服务器主文件中指明属于其他包的功能。
例如,如果您有结构。
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,你可以使用它来处理根目录中的嵌套包。
希望对您有所帮助。
这个问题与无服务器无关,而是我在 package.json 中设置脚本的新手经验。父项目文件夹中有 2 个选项 运行 serverless offline start
。
选项 1
在调用 serverless offline start
cd my-project &&
"scripts": {
"start": "concurrently \"npm start --prefix client\" \"node index.js\" \"cd my-project && serverless offline start\""
}
选项 2
将 --prefix my-project
添加到 serverless offline start
命令。 注意:我没有测试选项2
"scripts": {
"start": "concurrently \"npm start --prefix client\" \"node index.js\" \"serverless offline start --prefix my-project\""
}