用nodejspipe理第三方库(不是节点模块)?

我正在使用package.json文件来定义nodejs需求,以及npm update ,当然,工作正常。

我怎样才能pipe理(更新简单的方法)与节点的其他第三方库? 例如:

 https://github.com/documentcloud/backbone.git https://github.com/twitter/bootstrap.git 

vendor文件夹。

总结:我想你想用http://twitter.github.com/bower/

详情:有两种方法可以理解你的问题:

  • 如何pipe理/更新非npm代码?
  • 如何pipe理/更新客户端JavaScript资源?

问题就像前者一样,但是从你的例子来看,我想你想问问后者。

服务器端代码的情况下,只要坚持所有的代码与npm风格的package.json清单。 如果代码的作者没有响应,请将其分叉并添加清单。 没有任何借口。

对于客户端代码 ,情况是不同的。 包pipe理并没有一个确定的标准 ,但是这是一个被广泛认可的问题,也是非常活跃的发展领域。 最近几个挑战者已经上升,试图占据主导地位: BPM , Jam或Ender 。 这是您的select,他们很好地总结在这里: networking资产的包pipe理器

但是,上述所有的问题都解决了一个稍微过于macros大的问题 – 他们试图将这些模块传输到浏览器(通过延迟加载,require-js风格,依赖关系parsing,连接/缩小等)。难以使用。

这个领域的新进入者是来自Twitter的Bower 。 它只关注vendor文件夹中的下载/更新生命周期,并忽略浏览器交付。 我喜欢这种方法。 你应该检查一下。

你可以去git submodules:

http://git-scm.com/book/en/Git-Tools-Submodules

在GitHub上使用别人的repo作为Git子模块

[ 更新1 ]在您的存储库的根目录下执行此操作:

 git submodule add git://github.com/documentcloud/backbone.git vendors/backbone git submodule add git://github.com/twitter/bootstrap.git vendors/bootstrap 

查看更多: http : //skyl.org/log/post/skyl/2009/11/nested-git-repositories-with-github-using-submodule-in-three-minutes/

虽然这可能不是节点的方式,一些纯粹主义者可能会抱怨, composer php会做你想做的。 即使Composer与PHP项目一起使用,也没有理由不能用它来pipe理nodejs项目的第三方非npm repos。 很明显,第三方库最好包含一个package.json,但这种情况不会发生。 我试过这在我目前的nodejs应用程序,它完全适合我。

优点:

  • 一个json文件指定没有package.json文件的自定义外部依赖关系
  • 自定义包在项目文件夹中的存储位置
  • 与私人回购和回购协同工作,最初不是为了与nodejs一起使用

缺点:

  • 需要php cli
  • 更新依赖关系的额外步骤
  • 一个额外的JSON文件的依赖

这里怎么做(你需要能够从cli运行php):

1.下载Composer (直接进入你的root nodejs项目文件夹)

 curl -s https://getcomposer.org/composer.phar > composer.phar 

2.创build一个composer.json文件 (在项目的根目录下)

 { "repositories": [ { "type": "package", "package": { "name": "twitter/bootstrap", "version": "2.0.0", "dist": { "url": "https://github.com/twitter/bootstrap/zipball/master", "type": "zip" }, "source": { "url": "https://github.com/twitter/bootstrap.git", "type": "git", "reference": "master" } } } ], "require": { "twitter/bootstrap": "2.0.0" } } 

3.运行Composer更新

 php composer.phar update 

这将根据您的要求将软件包下载到vendor文件夹中:

 ├── vendor │  ├── ... │  ├── composer │  │  └── installed.json │  └── twitter │  └── bootstrap │  ├── LICENSE │  ├── Makefile │  ├── README.md │  ├── docs │  │  ├── assets │  │  └── ... │  ├── img │  │  ├── glyphicons-halflings-white.png │  │  └── glyphicons-halflings.png │  ├── js │  │  ├── bootstrap-affix.js │  │  └── ... │  ├── less │  │  ├── accordion.less │  │  └── ... │  └── ...