Безсерверный фреймворк не будет запускаться с локальным
РЕДАКТИРОВАТЬ: Как ответил ниже Карлос, это было ошибкой в версии server.23 -serverodb-local- 0.2.23 (версия на момент редактирования - 0.2.35). Теперь она решена, и если у вас возникла похожая проблема, вы должны обновить свои зависимости.
У меня была рабочая среда разработки лямбда-функции AWS, разработанной на основе Serverless с использованием DynamoDB (плагины: serverless-offline, serverless-dynamicodb-local . После удаления node_modules и переустановки я потерял возможность запуска сервера разработки, который Я имел обыкновение делать с serverless offline start
serverless offline
работает правильно, но если я пытаюсь запустить Dynamodb локально, он выдает следующую ошибку:
Reference Error ----------------------------------------
options is not defined
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Stack Trace --------------------------------------------
ReferenceError: options is not defined
at BbPromise.resolve.then (/Users/pablo/Documents/myProject/node_modules/serverless-dynamodb-local/index.js:164:21)
From previous event:
at PluginManager.invoke (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/classes/PluginManager.js:236:22)
at PluginManager.run (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/classes/PluginManager.js:255:17)
at variables.populateService.then (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/Serverless.js:99:33)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
at Serverless.run (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/Serverless.js:86:74)
at serverless.init.then (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/bin/serverless:39:50)
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 6.10.3
Serverless Version: 1.19.0
Как ни странно, если я перейду к localhost:8000/shell, оболочка динамодаба запущена.
У кого-нибудь была подобная проблема?
6 ответов
Таким образом, оказывается, что это была проблема, зарегистрирована и решена здесь: https://github.com/99xt/serverless-dynamodb-local/issues/120
Вы можете скачать версию 0.2.24, набрав npm i serverless-dynamodb-local@0.2.24 --save-dev
если вы используете его в качестве зависимости развития.
Во-первых, добавьте Serverless Offline в ваш проект:
npm install serverless-offline --save-dev
Тогда внутри вашего проекта serverless.ym
l файл добавить следующую запись в раздел плагинов: serverless-offline
, Если раздела плагинов нет, вам необходимо добавить его в файл.
Это должно выглядеть примерно так:
plugins:
- serverless-offline
Вы можете проверить, успешно ли вы установили плагин, запустив безсерверную командную строку:
serverless
консоль должна отображать Offline как один из плагинов, теперь доступных в вашем проекте без сервера.
Затем в вашем проекте root запустите:
serverless offline start or sls offline start.
Ссылка ссылка
Я попробовал ниже, и это решило проблему для меня
sls dynamodb install --localPath ./bin
Ссылка https://github.com/99xt/serverless-dynamodb-local/issues/210
Для меня это была очень тонкая деталь. я имел
stage
установить как
local
. Итак, мне пришлось поместить следующую строку в
custom
раздел
serverless.yml
файл:
custom:
dynamodb:
stages:
- local
serverless-Dynamodb-local 0.2.35 работал у меня
yarn remove serverless-dynamodb-local
yarn add serverless-dynamodb-local@0.2.35
sls dynamodb install