2012-03-19 29 views
2

我们已经构建了自己的应用程序,以包括三个仓库:部署私有存储库作为依赖

  1. 前端(这一部署)
  2. 共享
  3. 核心

这些都是私人GitHub上的Git仓库。

我的package.json文件的相关部分看起来是这样的:

"dependencies": { 
    "express": "2.5.x", 
    "coffeecup": "0.3.x", 
    "socket.io": "0.8.x", 
    "connect-mongodb": "1.x", 
    "app-core": "git+ssh://[email protected]:...git", 
    "app-shared": "git+ssh://[email protected]:...git" 
    }, 
    "devDependencies": { 
    "mongoskin": "*", 
    "bcrypt": "*", 
    "libxml-to-js": "0.3.x" 
    }, 
    "bundleDependencies": [ 
    "app-core", 
    "app-shared" 
    ], 
    "analyze": true 

当我部署到Nodejitsu使它工作的唯一办法是在我部署库的devDependencies已经共享和核心的依赖,但这似乎是错误的解决方案,因为devDependencies是针对开发而非生产的。

我也试过Shrinkwrapping但没有用。

有谁知道更好的解决方案?

回答

0

你只能从你自己的机器ssh到github。

git+ssh://[email protected]回购URL更改为https://github.com/...

+0

在Nodejitsu你不能拥有你的私人SSH密钥,所以私人代表无法获取,因此我需要bundleDependencies。 – webjay 2012-03-20 08:03:23

1

"bundleDependencies"应该工作。当你jitsu deploy时,它会分析依赖关系并尝试添加它们,但是你可以用--noanalyze来禁用它。如果你在node_modules/app-corenode_modules/app-shared有你的依赖关系,那么我不明白为什么它不起作用。你能告诉我更多的信息,比如jitsu deploy的输出吗?

编辑:哦,我明白了,你有他们在devDependencies,以便他们不安装在Nodejitsu。是的,我想这就是你会这么做的,除非你只是想将依赖关系作为子模块捆绑在一起,甚至在dependenciesdevDependencies之内都没有。