编程语言
首页 > 编程语言> > javascript-使用特定版本的npmrinkwrap

javascript-使用特定版本的npmrinkwrap

作者:互联网

我正在将node.js应用程序部署到Appfog,但是由于其安装脚本无法解析npm-shrinkwrap.json,因此整个部署过程将失败.

今天在rinklewrap.json中的一个示例依赖关系看起来像这样

   "async": {
      "version": "0.2.10",
      "from": "async@0.2.10", <--- This line breaks install script at appfog
      "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
    },

我遍历了整个wrinkwrap文件,并从每个依赖项声明中删除了“ from”部分,然后设法上载了我的应用程序,并且它可以正常工作.

所以我的问题是,我该如何使用旧版本的npmrinkwrap,以便获得所需的rinkwrap.json版本?

Appfog支持人员告诉我,我需要使用1.1.21版,但是我没有成功安装它.

请询问是否缺少一些信息.

解决方法:

如果您只想使用npm的旧版本,则可以通过npm安装(我知道这听起来很奇怪,但是可能)

npm install npm@1.1.21

编辑:因此,您尝试安装不存在的npm版本.赶紧跑

npm view npm

并查看属性版本,以了解可以通过npm安装哪些版本.

您将看到注册表中不存在1.1.21,这意味着您应尝试通过github安装它(请参阅@sakai的答案).

但随后您看到下一个问题.您正在使用node@0.10.26,并且npm 1.1.21可能与node@0.10.x不兼容.

所以我自己基本上可以看到2种可能的解决方案:

解决方案1:

使用n(或使用nvm来回切换节点版本.您可以尝试安装node@0.8.x版本并尝试在其中安装npm@1.1.21,并在完成收缩包装后切换回当前节点版本.

解决方案2

您可以设置某种grunt / gulp任务(我希望您使用其中的一种)来运行grunt / gulp收缩包装,这会生成您的rinkwrap.json(通过npmrinkwrap),并在完成后清理您的rinkewwrap.json

标签:node-js,npm,appfog,shrinkwrap,javascript
来源: https://codeday.me/bug/20191121/2054600.html