无法通过npm自动安装类名包(在package.json中定义)

时间:2015-06-12 10:45:14

标签: node.js heroku npm

我对NodeJS很陌生,我面临着 npm 问题,因为安装classnames包已保存到package.json文件。

假设我有dependencies列表:

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

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

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

我试图运行npm cache clean,但没有用。是特定类名包还是其他任何问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

最后我可以解决这个问题。这不仅仅是 classnames 包的问题。

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

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

  

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