我试图在node.js中迈出第一步,并且我一直在关注本教程:
https://docs.microsoft.com/en-us/azure/app-service-api/app-service-api-nodejs-api-app
当我在天蓝色的云壳中输入npm install -g yo
时,我收到此错误:
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?
答案 0 :(得分:2)
您应该在本地计算机上安装Swaggerize,而不是在Cloud Shell中安装。
在本地计算机上安装Swaggerize 。 Swaggerize是一个从Swagger定义为REST API生成Node.js代码的工具。
在本地进行开发后,使用git推送到App Service(第34节;使用Git和#34部署API;来自文档)。
答案 1 :(得分:1)
今天在Cloud Shell中,您被设置为regular user without sudo permissions。因此,您无法从Cloud Shell运行sudo cmds。在您所关注的教程中,Cloud Shell为sections that require az
commands to create the Azure app service提供帮助,因为Azure CLI 2.0在那里得到维护和更新。
section where you are npm installing Swaggerize意味着在您的本地计算机上,说明中包含此详细信息。
答案 2 :(得分:0)
您的用户似乎无权在/usr/local/lib/node_modules
中安装。尝试删除-g
选项以在本地安装。
在sudo
命令前面使用npm install
切换到root用户以获取此命令(如果您允许这样做)。