2

我们尝试通过
在我们的帐户中运行多个 Watson Cloud 演示 node.js 应用程序来测试 IBM Bluemix Cloud 和 Watson Cloud,我们
注意到以下情况:

在我们的帐户中安装演示应用程序后,它可以正常运行;因为我还没有在 Bluemix DevOps 工具中打开这个应用程序。因此,当此应用每次运行时,此应用会根据staging_task.log文件执行以下操作:

 "" Installing IBM SDK for Node.js (4.5.0)from cache"""" 

上面的应用程序前端 js 代码是为与此 SDK 和 Node.js 版本一起使用而编写的。

# 后来,我在我们的帐户中制作了上述演示应用程序的另一个副本。它运行没有问题。然后,我只是在 Bluemix DevOps 工具中打开了上面的应用程序代码并保存了文件,没有接触任何代码。然后,这个版本的应用程序不会运行。

我们的调查显示如下:

  • 这个staging_task.log文件显示了这个事实: 上述步骤之后的这个版本应用程序现在执行此操作:
    “”“从缓存“”“安装 IBM SDK for Node.js (4.6.2)”

    这意味着 Bluemix Cloud 在上述步骤之后会自动使用较新版本的 Node.js 和 SDK。

我们在实验中发现的另一种情况也可能与这个问题有关:

*我们在 2016 年 8 月左右部署了以下 Watson 演示应用程序,并且我们没有重新保存此应用程序中的任何文件,因此我们猜测此演示应用程序仍然在缓存的运行环境中运行(IBM SDK for Node.js 第 4 版??)在我们在 Bluemix 中的帐户中。所以这个演示应用程序在我们的帐户中运行快速且正确。 https://github.com/watson-developer-cloud/conversation-simple

*在上述部署之后,Bluemix Cloud 和 Watson Cloud 中有几次升级。许多运行环境包含 IBM SDK for Node.js 第 6 版 ??

*在上个月,我们在我们的帐户中部署了上述相同的演示应用程序。我们发现同一个应用程序的运行速度比上述 2016 年 8 月的部署慢得多。我们的猜测是,这个演示应用程序代码是基于 IBM SDK for Node.js 第 4 版设计的。

以下 Q 支持我们的观点:Bluemix Cloud 或 Watson Cloud 中自动升级的 IBM SDK for Node.js 可能

导致了这个问题。现在 Bluemix Cloud 中的 IBM SDK for Node.js 可能是版本 6,这个应用程序可能是基于 IBM SDK for Node.js 版本 4 设计的(这个版本不是 Package 中的 Node.js 版本.json,但 IBM SDK 版本) IBM Bluemix node.js 本机承诺支持

我们的问题:

- 为什么上面的 SDK 和 Node.js 会自动升级?-在我们决定在 Bluemix Cloud 中升级之前,我们
如何强制此演示应用程序使用相同版本的IBM SDK和 Node.js?从而确保我们现有的应用程序正常运行。

任何想法和建议将不胜感激。

4

2 回答 2

3

您可以在 package.json 中定义节点和 npm 版本

{
   "name":"iot-html5-phone",
   "version":"0.0.1",
   "scripts":{
      "start":"node app.js"
   },
   "dependencies":{

   },
   "engines":{
      "node":"0.10.26"
   }
}
于 2017-01-09T21:38:14.220 回答
0

利用:

"engines":{
   "node":"4.5.0"
}

(没有插入符号或波浪号)

于 2017-01-13T14:25:43.053 回答