你知道什么是Javascript疲劳吗?
现在我知道了。
虽然我不是javascript开发人员,但我正在使用Node和Angular作为我的项目服务器。我的所有Node包都是使用npm
安装的,而我的Angular包则是使用bower
安装的。因为这是我学习的方式。我维护一个package.json
和一个bower.json
来安装所有东西。通常,我会做以下事情:
npm install
bower install
但是Heroku只安装npm包,所以解决方案是在package.json
中包含一个post install脚本。
它工作得非常完美,除了一些不再维护的库(但这是另一个问题)。
非常完美,直到今天,当我被困在Heroku错误消息中时:
bower angular#* ENORESOLVER Bower resolver not found: bower-npm-resolver
这是我的package.json
文件:
{
"name" : "my-marvelous-app",
"engines": {
"node": "5.0.0",
"npm": "3.3.6"
},
"main" : "server.js",
"dependencies" : {
"express" : "4.5.x",
"mongoose" : "4.2.x",
...
[a bunch of important packages...]
...
"vorpal" : "latest",
"bower" : "1.7.x"
},
"scripts" : {
"postinstall": "./node_modules/bower/bin/bower install"
}
}
还有我的 bower.json
文件
{
"name": "my-marvelous-backoffice",
"version": "1.0.0",
"dependencies": {
"angular" : "latest",
"angular-bootstrap" : "latest",
"angular-cookies" : "latest",
"angular-route" : "latest",
"bootstrap" : "latest",
"font-awesome" : "latest"
}
}
我不知道该怎么办。在我的本地机器上,
npm install
可以工作,但在Heroku上却不行。请不要建议我使用其他包管理器,比如yarn
之类的东西,因为我是一名移动开发人员,我没有太多时间去学习另一个会在六个月内过时的炒作。对于这种恶性循环,我感到非常抱歉。(对JavaScript的疲劳感!)
编辑
最后,我找到了一个带有以下配置的.bowerrc
文件。{
"directory": "public/libs",
"resolvers": [
"bower-npm-resolver"
]
}
我删除了resolvers
条目,现在它可以正常工作。 然而,我不得不删除一些npm
的Angular包...
npm -g
,因为所有东西都必须在package.json
中。如果我有一些npm:
前缀,那么我应该直接在package.json
中添加bower-npm-resolver
吗? - Martin