Articles of gulp

在因子束的部分束上进行一些操作

我正在用browserify和factor-bundle来使用gulp。 我有以下代码: b = browserify({ entries: [ 'a.js', 'b.js'], plugin: [ [ 'factor-bundle', { outputs: [ 'build/a.js', 'build/b.js' ] } ] ] }) .bundle() .pipe(source('bundle.js')) .pipe(buffer()) .pipe(gulp.dest('/build/common')); 我想在这个parial bundles('build / a.js'和'build / b.js')上进行一些操作(比如uglify,bundle-collapser或其他工作)。 我尝试使用factor-bundle页面上描述的方法: b.plugin('factor-bundle', { outputs: [ write('x'), write('y') ] }); function write (name) { return concat(function (body) { console.log('// —– ' + name […]

从gulp任务运行一个npm脚本

如何在gulp任务中运行npm脚本命令? 的package.json "scripts": { "tsc": "tsc -w" } gulpfile.js gulp.task('compile:app', function(){ return gulp.src('src/**/*.ts') .pipe(/*npm run tsc*/) .pipe(gulp.dest('./dist')) .pipe(connect.reload()); }); 我想这样做是因为运行npm run tsc不会给我任何错误,但是如果我使用gulp-typescript编译.ts那么我会得到一堆错误。

gulp:自动添加版本号以请求防止浏览器caching

我通过在服务器上直接构build源代码文件来部署我的项目。 为防止caching问题,最佳做法可能是添加一个唯一编号来请求url,请参阅: 防止Web应用程序升级时的浏览器caching ; 在npm版本库中,我无法find自动添加版本号的请求的工具。 我问是否有人发明了这样的工具。 可能的实施可能如下: 我有一个文件index.html在src/文件夹,以下脚本标记 <script src="js/app.js<!– %nocache% –>"></script> 在构build期间,它被复制到dist/文件夹,并且评论被自动增量编号取代 <script src="js/app.js?t=1234"></script>

缩进的Sass语法不适用于节点sass和gulp-sass

Libsass 2.0将缩进的语法带到了libsass用户,但到目前为止,我一直无法使它与node-sass和gulp-sass 。 我有所有的最新版本: 节点sass :0.93 咕噜咕噜 :0.7.2 吞咽 :3.8.2 该设置使用括号语法编译.sass文件甚至.sass文件,但不会编译缩进的语法。 有没有人成功地编译了节点sass和gulp的缩进语法? 我的gulpfile.js var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('sass', function() { return gulp.src('./sites/all/themes/nsfvb/sass/screen.sass') .pipe(sass({ includePaths: require('node-neat').includePaths, errLogToConsole: true } )) .pipe(gulp.dest('./sites/all/themes/nsfvb/css')); }); gulp.task('watch', function() { gulp.watch('./sites/all/themes/nsfvb/sass/*.sass', ['sass']); }); gulp.task('default', ['sass', 'watch']); 运行默认任务时出错 error: invalid top-level expression

用任意的gulpfile名称运行gulp(不是gulpfile.js)

在我的gulp文件中有一个特定的任务是与其他任务隔离的,并且不需要作为构build过程的其余部分运行。 我想把它放在一个单独的gulp文件中,并自行执行。 如何使用具有自定义名称的gulp文件使用gulp? 作为Gulp的文档的入门文档指引我一个没有提到CLI的API文档。 我的search试图争取gulp参数,主要是如何获得命令行参数进入gulp任务的结果。 实际的用例是在Docker容器中提取可翻译的string,我不想用不必要的node.js包来膨胀。

在使用gulp时。 有什么办法来抑制某些任务的“已启动”和“已完成”日志条目

在使用gulp时。 有什么办法来压制某些任务的“已启动”和“已完成”日志条目? 我想使用依赖关系树,但是我不想在日志树中logging几个任务,因为它们是具有自己的日志function的中间步骤。

咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕

我正在使用gulp-inject来自动添加SASS导入,因为它们是在我的项目中新build的。 这工作正常,新的SASS文件被正确导入,但是当已经导入的文件被删除,而gulp-watch正在运行它崩溃与以下错误: Error: _dev\style\style.scss Error: File to import not found or unreadable: components/_test – Copy.scss Parent style sheet: stdin on line 2 of stdin >> @import "components/_test – Copy.scss"; 我已经花了好几个小时试图弄清楚为什么它试图编译过时的导入的旧版本的样式表。 我在SASS任务上设置了一个延迟,并且在运行的时候,实际文件中的导入是正确的。 我已经读过了,可能是caching的stylehseet,但真的不知道。 下面是我的Gulp文件的相关位,在底部是一个链接到我的完整吞噬文件。 这是我的监视任务:(组件任务触发SASS任务) // SASS plugins.watch([paths.dev+'/**/*.scss',!paths.dev+'/style/components/**/*.scss'], function () {gulp.start(gulpsync.sync([ 'build-sass' ]));}); // COMPONENTS plugins.watch(paths.dev+'/style/components/**/*.scss', function () {gulp.start(gulpsync.sync([ 'inject-deps' ]));}); SASS任务 gulp.task('build-sass', function() { // […]

如何在吞噬生成过程中将内容插入到文件中?

我设法完成我的任务使用一个叫做gulp插入的gulp插件像这样: gulp.task('compile-js', function () { // Minify and bundle client scripts. var scripts = gulp.src([ srcDir + '/routes/**/*.js', srcDir + '/shared/js/**/*.js' ]) // Sort angular files so the module definition appears // first in the bundle. .pipe(gulpAngularFilesort()) // Add angular dependency injection annotations before // minifying the bundle. .pipe(gulpNgAnnotate()) // Begin building source maps for […]

gulp js src – 复制和使用基地

我有吞咽任务复制js文件 这不起作用 gulp.src('./**/*.js', {base: '../src/main/'}) .pipe(gulp.dest('../target/dist')); 这工作: gulp.src('../src/main/**/*.js', {base: '../src/main/'}) .pipe(gulp.dest('../target/dist')); 那么基地在这里的用途是什么? 如果我必须把整个path放在第一个参数,为什么我应该使用基地? 有没有关于gulp src的官方文档? 是否值得使用有限的文件咕噜咕噜? [基于评论的更新] 为什么我使用基地? 请阅读本文寻找方式来复制文件,并根据父目录进行重命名 而且moreoever gulp.src可以采取一些path,所以我需要基地。

浏览器同步服务器与Gulp非常缓慢的启动

[ 编辑:解决! ] 看到我的答案在下面。 [ 原创问题如下 <<] 我在本地项目中使用GulpJS的服务器模式(使用内置的静态服务器)BrowserSync,似乎一切正常,除了BrowserSync服务器启动速度非常慢。 当我运行Gulp时,BrowserSync本身似乎马上被初始化,但服务器启动并需要大约4到5分钟(偶尔更多)才能返回访问URL。 在此期间,一切都会继续运行,BrowserSync会响应reload()调用等,但通过常规URL(本例中为localhost:3000和localhost:3001)不能访问。 一旦访问URL被返回,服务器似乎已经启动,BrowserSync的页面刷新工作正常,实际上非常快。 我已经尝试了几个不同的configuration我的gulpfile.js,尝试不同的方式来初始化BrowserSync,不同的方法来调用stream()和reload()方法(包括尝试BrowserSync的基本Gulp / SASS“食谱”)和不同的端口号,但所有configuration都有同样的问题。 我什至尝试禁用我的防火墙和AV软件(Avast),但没有。 我正在运行Windows 8.1,如果这是相关的。 BrowserSync是通过NPM本地新安装到项目中的,本地新安装到其他目​​录也有同样的问题。 NPM,Ruby,Gulp和所有模块似乎都是最新的。 对于它的价值,我所有使用Ruby,Gulp和Node.js的经验都非常stream畅,没有任何问题。 我找不到任何其他的post提到这个问题,我开始认为这是正常的行为。 这是正常的,如果没有,有没有人有任何想法的事情要尝试? 由于BrowserSync服务器总是启动(最终),所以这个延迟并不是世界末日,但是在我的工作stream程中,这仍然是我不想处理的问题。 最后,这里是我的gulpfile.js:/ *文件:gulpfile.js * / var gulp = require('gulp'), gutil = require('gulp-util'); jshint = require('gulp-jshint'); sass = require('gulp-sass'); concat = require('gulp-concat'); uglify = require('gulp-uglify'); sourcemaps = require('gulp-sourcemaps'); imagemin = require('gulp-imagemin'); browserSync = require('browser-sync').create(); […]