我有一个node.js应用程序,我刚刚部署到Heroku,它取决于canvas模块。但是,该模块需要cairo图形库和长篇故事,我需要使用this fork of canvas附带的预先编写的版本。
通常,我的package.json依赖项看起来像:
"dependencies" : {
"canvas" : "0.10.0",
"express" : "2.5.6",
"jade" : "0.20.1"
}
但是为了让我的应用程序在Heroku上工作,我必须从github拉入分支
"dependencies" : {
"canvas" : "git://github.com/elspoono/node-canvas-heroku.git#master",
"express" : "2.5.6",
"jade" : "0.20.1"
}
是否有可能拥有“Heroku-only”版本的package.json?或者在package.json中有另一个部分,我可以在dev环境中“覆盖”画布依赖性吗?
答案 0 :(得分:3)
有一个名为penv的工具看起来很有希望。从他们的网站:
有时我们需要为我们的不同环境(如生产,登台和开发)提供不同的package.json属性。 (例如:jitsu部署)
使用penv,您可以使用在environment.json文件中定义的属性自定义package.json文件。
实际上现在就试试吧。
答案 1 :(得分:2)
从未使用过Heroku,但package.json格式定义了devDependencies字段,请参阅Nodejitsu cheatsheet。然后使用$ npm install -d
安装。
答案 2 :(得分:1)
也许您可以在Git中使用Heroku特定分支并在部署之前合并到该分支中(确保您不会合并到package.json上)。