npm 从不同的目录运行多个服务,包括无服务器脱机



当前

  1. 我有一个本地测试环境设置。
  2. 我正在尝试迁移到无服务器,并设置无服务器脱机进行本地测试。

我无法让我现有的客户端 + 服务器运行,以及无服务器离线

目录:

root:
- package.json
- /my-project
-- /serverless
--- ...
-- handler.js
-- serverless.yml

包。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.

注意:当我在my-project中运行serverless offline start时,该命令成功执行并且无服务器脱机运行。

问题

  1. 有没有serverless offline start办法在/my-project
  2. 我需要重新组织目录结构吗?

笔记

我尝试了从不同的存储库中回答运行npm脚本,但未能使其正常工作。也许是因为我正在尝试运行命令(即无服务器),而不是来自不同目录上下文的脚本文件。

这个问题与无服务器无关,而是我在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""
}

在无服务器中,若要添加无服务器"子"项目,必须在主无服务器文件中指示属于其他包的函数。

例如,如果您有结构。

root:
----serverless.yml
----handler.js
----package.json
----index.functions.yml
----src/
-------/serverless.yml
-------/package.json
-------/handler.js
-------/index.functions.yml
-------/handler.js

然后,您必须在主无服务器.yml文件中具有这样的内容:

service: main-serverless
plugins:
- serverless-offline
functions:
- ${file(./index.functions.yml)}
- ${file(./src/index.functions.yml)}

如果你想在包内操作,你必须尝试使用lerna,有了它,你可以从根目录处理嵌套包。

希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新