1

我正在尝试在 node.js 中迈出第一步,我一直在学习本教程: https ://docs.microsoft.com/en-us/azure/app-service-api/app-service-api- nodejs-api-app 当我npm install -g yo在 azure 中键入云外壳时,我收到此错误:

npm ERR! Linux 4.4.0-83-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "yo"
npm ERR! node v6.9.4
npm ERR! npm  v3.10.10
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/shiran_dror/app-service-api-node-contact-list/npm-debug.log

如何以 root/管理员身份使用 shell?

4

3 回答 3

2

您应该在本地计算机上安装 Swaggerize,而不是在 Cloud Shell 中。

在本地机器上安装 Swaggerize 。Swaggerize 是一个从 Swagger 定义为您的 REST API 生成 Node.js 代码的工具。

在本地完成开发后,使用 git 推送到应用服务(文档中的“使用 Git 部署 API”部分)。

于 2017-08-06T20:01:14.860 回答
1

在今天的 Cloud Shell 中,您被设置为没有 sudo 权限的普通用户。因此,您目前无法从 Cloud Shell 运行 sudo cmds。在您正在学习的教程中,Cloud Shell 有助于需要az命令来创建 Azure 应用服务的部分,因为在那里为您维护和更新了 Azure CLI 2.0。

你 npm 安装 Swaggerize的部分是在你的本地机器上,说明包括这个细节。

于 2017-08-10T22:00:11.233 回答
0

您的用户似乎没有权限安装在/usr/local/lib/node_modules. 尝试删除-g本地安装选项。

sudo在命令前面使用npm install此命令切换到 root 用户(如果您被允许这样做)。

于 2017-08-06T13:16:27.920 回答