我正试着用我的AWS Lambda函数来工作。
{
"errorMessage": "Cannot find module 'casper'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object.<anonymous> (/var/task/index.js:3:14)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)"
]
}我一直在发现Lambda无法检测到的错误。我将zip文件上传到Lambda中,并在压缩文件之前将casperjs模块安装到我的目录中。
我的package.json文件说我安装了casperjs。
{
"name": "lambda",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"casperjs": "^1.1.3",
}
}有人知道我做错了什么吗?谢谢。
发布于 2016-10-20 14:42:24
因为CasperJs依赖于PhantomJ,所以您可以将其设置得非常类似于这个repo:https://github.com/TylerPachal/lambda-node-phantom。
主要的区别是您需要添加和目标CasperJs,并且需要确保CasperJs能够找到并加载PhantomJs。
chmod -R o+rx *。然后用:zip -r my_package.zip *压缩它。发布于 2016-10-15 11:33:24
根据Casper.js文档,它不是一个实际的节点模块。因此,您不能在Package.json中要求它,也不能用节点模块将其压缩。您需要找到如何在lambda实例上安装它,或者找到一个实际的节点模块来实现您想要的功能。我怀疑在lambda上安装casper是不可能的,但这只是我的直觉。
警告,虽然CasperJS可以通过npm安装,但它不是一个NodeJS模块,并且不会开箱即用NodeJS。不能在节点中使用require(‘casperjs’)加载casper。请注意,CasperJS无法使用绝大多数NodeJS模块。尝试并运用你的最佳判断力。
http://docs.casperjs.org/en/latest/installation.html
https://stackoverflow.com/questions/40055453
复制相似问题