如何在NodeJS Azure功能中使用包管理?

Jer*_*SFT 21 azure-functions

我正在尝试将此示例项目构建为Azure功能,它需要一些软件包https://github.com/OfficeDev/O365-Nodejs-Microsoft-Graph-App-only

我可以看到我可以使用https://azure.microsoft.com/en-us/documentation/articles/functions-reference/#nodejavascript-api在NodeJS Azure功能中使用数据包管理

我试着用这个

var request = require('request');
Run Code Online (Sandbox Code Playgroud)

这个说法

You can include packages in your function directory (i.e. via npm install) and then import them to your function in the usual ways (i.e. via require('packagename'))
Run Code Online (Sandbox Code Playgroud)

所以我在其中创建了一个project.json,就像C#Azure Function使用的那样:

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "chalk": "^1.1.1",
        "q": "^1.4.1",
        "request": "^2.67.0"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

并得到此错误

2016-04-06T19:49:42.026 Exception while executing function: Functions.MicrosoftGraphWebHookNode. mscorlib: One or more errors occurred. Error: Cannot find module 'request'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (D:\home\site\wwwroot\MicrosoftGraphWebHookNode\index.js:1:77)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17).
Run Code Online (Sandbox Code Playgroud)

project.json应该工作吗?

Fab*_*nte 32

您可以将您package.json的功能目录包含在您的功能目录中,并npm install像使用Kudu或Azure门户中的控制台一样运行Node.js项目.

更多信息可以在这里找到:https: //azure.microsoft.com/en-us/documentation/articles/functions-reference/#node-version-amp-package-management

  • 以下是在 Kudu 中执行此操作的步骤:在浏览器中打开“https://&lt;your function app&gt;.scm.azurewebsites.net/DebugConsole”;"cd site\wwwroot\&lt;你的函数&gt;"; “npm 安装”。 (3认同)