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