aws lambda:找不到模块“字符串相似度”

时间:2018-12-01 18:38:48

标签: node.js amazon-web-services aws-lambda alexa-skills-kit

我正尝试着学习alexa的第一项技能,而我正在使用aws lambda进行逻辑分析,我的问题是,当我运行测试时,它会把我带回来:

{
  "errorMessage": "Cannot find module 'string-similarity'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:474:25)",
    "Module.require (module.js:596:17)",
    "require (internal/module.js:11:18)",
    "Object.<anonymous> (/var/task/index.js:3:24)",
    "Module._compile (module.js:652:30)",
    "Object.Module._extensions..js (module.js:663:10)",
    "Module.load (module.js:565:32)",
    "tryModuleLoad (module.js:505:12)",
    "Function.Module._load (module.js:497:3)"
  ]
}

我需要使用字符串相似性来比较两个字符串,但是我不知道如何在lambda中安装它。

这是我的package.json

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "alexa",
    "skill"
  ],
  "author": "",
  "license": "",
  "dependencies": {
    "ask-sdk": "^2.0.0",
    "string-similarity": "^1.2.0",
    "i18next": "^10.6.0",
    "i18next-sprintf-postprocessor": "^0.2.2"
  }
}

所以我在index.js中调用该包

'use strict';
const Alexa = require('ask-sdk');
var stringSimilarity = require('string-similarity');
...

我该如何解决此错误

感谢您的帮助,对不起我的英语,但我不是母语人士。

1 个答案:

答案 0 :(得分:0)

您收到此错误的原因是您使用的是'字符串相似性',但尚未将其安装在项目中,这就是为什么它会给您“ errorMessage”的原因:“无法找到模块'string -相似性”“。

不能直接在Lambda函数中添加节点模块。如果您需要使用外部模块/库,则需要将项目放置在本地计算机上,以便可以 npm安装所需的模块,然后在lambda函数中上传项目的.ZIP文件,请参见详细信息{{ 3}}。

或者,您可以使用 ASK CLI 将代码编写为您选择的编辑器,并通过简单的命令部署lambda函数。