问题:我想维护文件的"集合".这将有助于构建时间和灵活性.例如,每当我编辑我的app.js文件时,我都不想重新编译我的所有twitter引导程序文件.
我当然可以通过2个任务和2个监视声明实现这一点 - 问题是除了文件数组之外,任务是相同的.理想情况下,我想在watch声明中传递这些作为参数有没有办法做类似下面的伪代码?:
var files = {
scripts: [
'www/assets/scripts/plugins/**/*.js',
'www/assets/scripts/main.js',
],
vendor: [
'vendor/jquery/dist/jquery.js',
'vendor/jqueryui/ui/jquery.ui.widget.js',
'vendor/holderjs/holder.js'
],
};
...
gulp.task('js', ['lint'], function (files, output) {
return gulp.src(files)
.pipe(debug())
.pipe(concat(output))
.pipe(uglify({outSourceMap: true}))
.pipe(gulp.dest(targetJSDir))
.pipe(notify('JS minified'))
.on('error', gutil.log)
});
...
gulp.watch('scripts/**/*.js', ['lint', 'js'], files.scripts, 'app.min.js');
gulp.watch('vendor/**/*.js', ['lint', 'js'], files.vendor, 'vendor.min.js');
Run Code Online (Sandbox Code Playgroud)
翻转另一种方式:是命名空间调用任务的监视声明吗?这样我可以检查哪个手表触发了任务,并以任务本身为条件.
潜在的n00b问题,但谷歌没有一个很好的简洁答案 - 让我们一起修复.
我开始咕噜咕噜,我坚持一些基本的东西.我发现grunt-init已被转移到一个单独的过程中 - 文档周围的碎片一开始并没有让这个显而易见,但那很酷.
我现在决定我想要自己的grunt-init模板,它位于我网站的根目录中(现在,直到它成为时间将它移动到〜/ .grunt-init目录中).我正在使用咕噜声0.3.17
并通过grunt-init-jquery和其他初始化模板 - 我注意到它们都使用标准的init提示.
我想创建一些自定义提示,其中包含与客户端相关的信息,可能会添加客户端电子邮件或项目经理名称.
但我不能为我的生活弄清楚如何创建/在哪里存储可以在grunt-init中调用的自定义提示.
任何帮助赞赏
我的数据库中有2个表:项目和类别.项目可以是活动的,也可以是非活动的,并且具有与类别表中记录的id相关的categoryID.
我想执行一个查询,以显示所有类别,与活跃的项目总成本的类别
所以我的目标是返回看起来像这样的东西:
+--------+------------+---------------+
| id | cat_name | total_cost |
+--------+------------+---------------+
| 1 | cat 1 | 12 |
| 2 | cat 2 | 0 |
| 3 | cat 3 | 45 |
+--------+------------+---------------+
Run Code Online (Sandbox Code Playgroud)
我的第一个问题:
SELECT a.*,
SUM(b.cost) AS total_cost
FROM categories a LEFT JOIN items b
ON(a.id = b.category_id)
GROUP BY a.category_name
Run Code Online (Sandbox Code Playgroud)
工作正常,但它返回NULL项而不是0,并使用所有项目,无论活动/非活动:
+--------+------------+---------------+
| id | cat_name | total_cost |
+--------+------------+---------------+
| 1 | cat 1 | 44 |
| 2 | cat …Run Code Online (Sandbox Code Playgroud)