【问题标题】:Cannot install classnames package (defined in package.json) automatically by npm无法通过 npm 自动安装类名包(在 package.json 中定义)
【发布时间】:2015-07-10 11:24:58
【问题描述】:

我对 NodeJS 还是很陌生,我在安装 classnames 软件包时遇到了 npm 问题,该软件包保存到 package.json 文件中。

假设我有这个dependencies 列表:

"dependencies": 
{
    "classnames": "^2.1.2",
    "jquery": "^2.1.3",
    "sleep": "^1.2.0",
},

然后,当我运行 npm install 时,只有 jquerysleep 安装到 node_modules 文件夹中,而不是 classnames 。但是,如果我手动运行npm install classnames,它会将该包下载到 node_modules 文件夹中。

因此,我可以通过这种解决方法在本地运行我的应用程序,但是当我将代码部署到 heroku 时,它无法以任何一种方式安装并且我的应用程序无法运行。

我尝试运行npm cache clean,但它没有帮助。是特定的 classnames 包还是其他问题?

提前致谢。

【问题讨论】:

    标签: node.js heroku npm


    【解决方案1】:

    终于可以解决这个问题了。这不仅仅是 classnames 包的问题。

    解决方案是在本地安装所有我想要的软件包后运行npm shrinkwrap。然后提交所有内容(尤其包括 npm-shrinkwrap.json 中的更改)并推送到 heroku。

    原因已经解释清楚了here。快速回顾:

    当“npm install”安装带有 npm-shrinkwrap.json 文件的包时 在包根目录中,shrinkwrap 文件(而不是 package.json 文件)完全驱动该软件包的安装和所有 它的依赖关系(递归)。

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 2011-09-01
      • 2020-10-24
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 2019-10-29
      • 2016-06-14
      相关资源
      最近更新 更多