无服务器:在 ubuntu 16.04 中找不到命令
Posted
技术标签:
【中文标题】无服务器:在 ubuntu 16.04 中找不到命令【英文标题】:serverless: command not found in ubuntu 16.04 【发布时间】:2017-12-21 04:43:52 【问题描述】:我正在尝试在 Ubuntu 16.04 LTS 中设置 AWS Serverless 框架。我安装了 Node.js 并且还使用以下命令安装了无服务器:npm install -g serverless
在终端中。
但是当我尝试运行serverless
时,它会返回一个错误消息serverless: command not found
。下面是截图供参考:
【问题讨论】:
无服务器安装的输出是什么?它应该给你一个安装路径,例如~/npm-global/lib/node-modules
或类似的东西告诉你它的安装位置。
【参考方案1】:
在post 之后的另一个选择是尝试npx serverless ...
【讨论】:
【参考方案2】:如果上述选项不起作用(由于访问权限或 sudo 访问权限不足),那么以下一个肯定会起作用,因为它将无服务器保存到您的本地。
npm install serverless --save-dev
node ./node_modules/serverless/bin/serverless deploy
参考链接 - https://serverless.com/framework/docs/providers/aws/guide/services/
【讨论】:
【参考方案3】:遇到同样的错误serverless: command not found,但使用的是 YARN 而不是 NPM。要修复它必须执行(或更好地添加到您的 ~/.bash_profile):
export PATH="$PATH:$(yarn global bin)"
然后,如果尚未安装:
yarn global add serverless
【讨论】:
这个很有帮助。 哈哈,我只是没有在全球范围内安装无服务器。 :D【参考方案4】:我的建议是始终将无服务器框架安装为开发依赖项 (npm install serverless --save-dev
),特别是如果您在一个每个成员都可以拥有自己的框架版本的团队中工作。之后,您可以使用 npm 脚本调用框架。例如,您可以在脚本部分中创建一个新条目,如下所示:"deploy" : "serverless deploy"
并使用 npm run deploy
调用它。
【讨论】:
为了扩展这个好的答案,官方文档serverless.com/framework/docs/providers/aws/guide/… 中描述了调用无服务器 CLI 的不同方法【参考方案5】:按以下顺序试试
npm config set prefix /usr/local
sudo npm i -g serverless
sudo /usr/bin/node /usr/local/lib/node_modules/serverless/node_modules/tabtab/src/cli.js install --name serverless --auto
【讨论】:
【参考方案6】:尝试运行,
npm config set prefix /usr/local
然后,
npm i -g serverless
【讨论】:
终于吐了。这也解决了我在 Mac OS 上使用 iTerm 2 和 zsh 的问题 这在 macOS 上成功了,在我找不到的 serverless doco 中什么也没有 @Kong 这不是无服务器问题,而是 npm 配置问题 感谢@Manoj 兄弟!此外,如果您遇到权限问题,请运行sudo chown -R $USER /usr/local/lib
以上是关于无服务器:在 ubuntu 16.04 中找不到命令的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel - 使用 ubuntu 16.04 在 xampp 上找不到驱动程序