Php 如何将gulp.js这样的构建系统与bower这样的依赖关系管理器一起使用
多年来,我一直是一名差劲的普通PHP开发人员,后来我决定提高自己的水平,学习更多关于开发web应用程序的现代工作流和最佳实践的知识 我已经研究了任务运行器、依赖关系管理器、git和云服务器。我在一台个人电脑上工作,我已经决定解决这个问题Php 如何将gulp.js这样的构建系统与bower这样的依赖关系管理器一起使用,php,gruntjs,composer-php,bower,gulp,Php,Gruntjs,Composer Php,Bower,Gulp,多年来,我一直是一名差劲的普通PHP开发人员,后来我决定提高自己的水平,学习更多关于开发web应用程序的现代工作流和最佳实践的知识 我已经研究了任务运行器、依赖关系管理器、git和云服务器。我在一台个人电脑上工作,我已经决定解决这个问题 用于前端工作的PHP和Bootstrap 3 MYSQL(对于我所需要的东西,NoSQL似乎有些过头了) AppFog用于云托管,git用于存储库控制 用于任务自动化的gulp.js——它似乎比用于PHP项目的grunt简单得多 依赖项管理的bower或com
- 用于前端工作的PHP和Bootstrap 3
- MYSQL(对于我所需要的东西,NoSQL似乎有些过头了)
- AppFog用于云托管,git用于存储库控制
- 用于任务自动化的gulp.js——它似乎比用于PHP项目的grunt简单得多
- 依赖项管理的bower或composer(仍然无法决定)
这是处理这个问题的最佳实践,还是我在错误的球场。我是否应该将任务运行程序与依赖项管理器一起使用?看看globbing in Gulp。您应该能够分别使用
gulp.src('src/vendor/***.CSS')
和gulp.src('src/vendor/***.JS')
来选择CSS和JS
或者,快速搜索NPM会返回一些有用的信息:好的,首先,我们来谈谈作曲家和鲍尔。这并不是一种或另一种东西——更重要的是你会把它们一起使用。您可以使用composer来管理PHP依赖项(例如),使用bower来管理客户端依赖项,例如,或者类似的东西 就bower依赖项和拉入依赖项而言,一种方法是结合使用。这将读取您的
bower.json
文件,并基于此将bower依赖项拉入脚本。如果某些bower依赖项在bower.json
中没有main
属性(有些没有),那么bower主文件在默认情况下将不会拾取它们…但是-您可以通过在自己的bower.json
文件中提供覆盖来解决此问题,如下所示:
{
"name": "My Project",
"version": "1.0.0",
"dependencies": {
"autogrow": "https://github.com/ultimatedelman/autogrow.git#master",
"jquery": "1.12.2",
"jquery-slimscroll": "^1.3.7"
},
"overrides": {
"jquery-slimscroll": {
"main": [
"./jquery.slimscroll.js"
]
}
}
}
正如您可能已经注意到的,您也可以将鲍尔指向github回购和分支机构
然后,您可以使用实际的主bower文件
包本身来执行以下任务:
var gulp = require("gulp"),
reload = require("browser-sync").reload,
mainBowerFiles = require("main-bower-files")
$ = require("gulp-load-plugins")({
camelize: true
});
gulp.task("vendorScripts", function() {
return gulp.src(mainBowerFiles({filter: '*.js'}))
.pipe($.plumber({
errorHandler: c.onError
}))
.pipe($.concat(c.concatVendorCSSFile))
.pipe(gulp.dest('assets/styles'))
.pipe(reload({stream: true, once: true}))
.pipe($.size({title: "vendorScripts"}));
});
如果您感兴趣,我有一个完整的项目,包括所有这些设置谢谢Daryll。我现在做的是开发web应用程序的常见做法吗?奇怪的是,这个解决方案并不明显,或者在我遵循的任何教程中都不明显?这在最近似乎相当普遍。就个人而言,我不使用依赖性管理器,但我确实使用Gulp、PHP、MySQL和Bitbucket进行版本控制。由于没有真正了解Bower,我无法在如何安排一切方面帮助太多,下面的两个链接可能会有所帮助:@thatguy-接下来说,您现在可能应该使用Webpack和npm。这比你我用大口大口喝能做的任何事都要好得多。。