我对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
,但没有用。是特定类名包还是其他任何问题?
提前致谢。
答案 0 :(得分:1)
最后我可以解决这个问题。这不仅仅是 classnames 包的问题。
解决方案是在我在本地安装所需的所有软件包之后运行npm shrinkwrap
。然后提交所有内容(尤其包括 npm-shrinkwrap.json 中的更改)并推送到heroku。
原因已经清楚解释here。快速回顾:
当“npm install”安装包含npm-shrinkwrap.json文件的包时 在包根目录中,收缩包装文件(而不是package.json 文件)完全驱动该包的安装和所有 它的依赖(递归)。