我最近进入了Composer,NPM和Bower。我没有他们的能力之间有很多重叠,我想知道我的方法是否理智?如果没有,我该怎么办?
我通常通过设置composer来加载我的PHP库和依赖项来启动我的PHP项目。之后,我使用NPM安装Gulp和我使用的所有gulp插件。最后我使用Bower来获取JS和CSS库。
其中大部分都可以从GitHub加载,所以理论上我可以使用Composer来安装我的JS / CSS或Bower来加载我的PHP。我几乎已经在Composer上设置了它的自动加载功能,所以我想我的问题是我是否应该抛弃Bower?
目前,当我部署时,我会结帐我的仓库并致电npm install
安装Gulp等。在我的package.json
我使用"scripts": {"install": "gulp install"}
开启我的install
任务gulpfile.js
。这会加载启动Composer和Bower安装的gulp-composer
和gulp-bower
插件。
答案 0 :(得分:2)
他们都做的几乎相同,不同的是他们的默认包列表(NPM纯粹是NodeJS,Composer主要是PHP,Bower纯粹是js / css等)以及他们写的语言。
但是,它们都有一个限制:它们只能在一个位置安装软件包。这意味着您无法在some/php-framework
和vendor/
my-css-framework
中安装web/
。
位置非常重要:您经常希望PHP代码/ NodeJS库位于公共根目录之外,但您的资产应该位于公共根目录中。
我认为这是一个非常好的做法,如果你也能够使用每个依赖管理器来设计它所使用的语言(例如,Composer也做一些PHP特定的东西,如自动加载,而NPM做一些NodeJS特定的东西)。