Articles of gulp

如何在Gulp任务错误callback中显示堆栈跟踪?

当我在我的一个任务中出错时: gulp.task('foo', function(onDone) { onDone('It did not work'); }); 我得到一个很大的不相关的堆栈跟踪: [13:10:25] 'foo' errored after 4.27 s [13:10:25] Error: It did not work at formatError (C:\npm\node_modules\gulp\bin\gulp.js:169:10) at Gulp.<anonymous> (C:\npm\node_modules\gulp\bin\gulp.js:195:15) at emitOne (events.js:96:13) at Gulp.emit (events.js:188:7) at Gulp.Orchestrator._emitTaskDone (D:\Code\my-project\node_modules\orchestrator\index.js:264:8) at D:\Code\my-project\node_modules\orchestrator\index.js:275:23 at finish (D:\Code\my-project\node_modules\orchestrator\lib\runTask.js:21:8) at cb (D:\Code\my-project\node_modules\orchestrator\lib\runTask.js:29:3) at D:\Code\my-project\gulp-tasks\insert-docs.js:116:25 at Request._callback (D:\Code\my-project\gulpfile.js:112:17) 我怎么不显示? 我宁愿使用内buildgulp特性而不是第三方模块或console.error() 。

NPM失败github分支依赖

我有我的package.json当前依赖项: "gulp": "github:gulpjs/gulp#4.0", 这已经工作了一段时间,但突然间,我得到以下错误: λ npm i npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config –get remote.origin.url npm WARN addRemoteGit npm WARN addRemoteGit at ChildProcess.exithandler (child_process.js:206:12) npm WARN addRemoteGit at emitTwo (events.js:106:13) npm WARN addRemoteGit at ChildProcess.emit (events.js:191:7) npm WARN addRemoteGit at maybeClose (internal/child_process.js:852:16) npm WARN addRemoteGit at Socket.<anonymous> (internal/child_process.js:323:11) npm WARN addRemoteGit […]

避免在本地开发环境中使用多个node_modules

我使用node和gulp来编译SASS,缩小javascript,复制文件等。但是,由于我在本地开发环境(OSX)上有100多个项目,我开始想知道为什么我需要300个NPM软件包(40MB,7000文件!)在我开始的每一个项目。 那就是当我只是安装一口酒和一口酒的时候。 当然有更好的方法来使用节点/ gulp / sass。 我曾尝试使用像罗盘和Codekit的GUI工具,但我喜欢与Gulp一起工作,我喜欢从命令行工作。 有什么build议么?

在这种情况下直接使用gulp和直接打开index.html有什么区别?

我是新的一口气。 我正在阅读这个代码: https : //github.com/PatrickO10/meetUp现在。 我试图克隆它在我的桌面上,并打开index.html。 我发现它运作良好。 但是,仍然有一些步骤可以将其安装在该页面上,如下所示。 在命令行Run npm install以获取所需的 在命令行中inputgulp ,它将启动一个本地托pipe的页面 使用gulp时,我直接打开index.html时注册的帐户仍然可以使用。 我只是不知道如果我打开index.html和使用gulp有什么区别。

由于.framework文件夹,gulp复制源失败

我试图运行一个命令,将我的项目内容复制到另一个文件夹,我一直有这个错误: Error: EISDIR: illegal operation on a directory, read 我缩小它知道是造成问题的.framework文件夹。 如果我删除它工作正常。 问题是我需要该项目中的文件夹,因为我正在制作一个InDesign HTML插件需要一个PluPlug框架。 这是我的环境: Mac OSX 10.11.6 npm -v 4.0.5 node -v 7.4.0 gulp -v CLI version 1.2.2Local version 3.9.1

如何将事件发送到gulp-tap的父stream中

我正在设置一个gplp文件,在开发过程中将多个JavaScript文件捆绑到多个捆绑包中。 因为我想观察这个过程,如果在其中一个文件中有错误(语法或其他),我将需要正确地向父stream发送一个end事件,不要退出。 为了处理多个文件,我使用了gulp食谱中描述的方法 。 但是,使用这个和阅读文档上的吞咽水龙头,我不确定如何让它发送到父stream的错误。 我想要做的是以下几点: gulp.task('bundle', () => ( gulp.src(['whatevs/*.js'], { read: false }) .pipe($.tap((file) => { file.contents = browserify( // eslint-disable-line no-param-reassign file.path, { debug: true, fullPaths: true } ).bundle(); })) .on('error', function handleBrowserifyError(err) { this.emit('end'); }) .pipe(gulp.dest('bundles/')) )); 我可以看到错误,如果我将传递给bundle()调用的callback,但我没有丝毫的线索如何将其返回到父stream。

如何使用webapp generator gulp构build非缩减的生产代码?

我用webapp生成器搭build了一个项目。 该项目只适用于本地主机,但不是如果我用文件scheme直接在浏览器中打开文件。 URL http://localhost:9000/打开app文件夹中的index.html文件,但http://localhost:9000/styles/main.css打开app../.tmp/styles/main.css 。 实际上,本地主机如何将一个目录返回到窗口栏中而不打开path。 这造成的问题是index.html使用bower_componnets/example.css文件夹与本地主机。 用文件scheme里面不存在应用程序内的bower_components文件夹。 所以我不能使用没有本地主机的app文件夹。 实际的问题是,我必须在服务器上传一个静态网页的工作演示,供后端开发者用来制作dynamic代码。 现在我无法上传应用程序文件夹,因为它只能在本地主机上运行。 随着gulp build我得到一个dist文件夹与文件计划,但它是全部缩小,不使用cdn。 后端开发人员不能使用缩小的html。 我浪费了两天的时间与g ye水手和webapp战斗。 我认为这将通过自动化任务来减less我的时间,并且我将着重于代码。 但是做了什么,我已经完全从实际工作中失去了重点,我正在集中精力在每一个小时后,用凉亭,npm,gulp来解决xyz问题。 相反,我花了5分钟的时间下载或findcdn的插件,并将它们手动包含在我的代码中,我将保存2天。 所以g b凉亭做了5分钟工作到2天工作。 多么辉煌的工具。 那么问题是: 如何使用webapp generator gulp构build一个类似于dist文件夹的非缩减生产代码? 编辑我的临时解决scheme 因为我们需要为我们的项目使用unminified html css和js文件,所以我在gulp文件中添加了一个新任务来生成类似于dist的demo文件夹。 我只是复制gulp.src('dist/**/*')任务,并将gulp.src('dist/**/*')改为gulp.src('demo/**/*') 。 为了这个任务生成样式和js文件夹中的文件,我添加了.pipe(gulp.dest('demo'))在.pipe(gulp.dest('dist')); }); .pipe(gulp.dest('dist')); }); 存在。 我也照顾把.pipe(gulp.dest('demo')); }); .pipe(gulp.dest('demo')); }); 在gulp使用minify任务之前。 这里是相关的gulp.js代码: // some code here gulp.task('html', ['styles', 'scripts'], () => { return gulp.src('app/*.html') […]

如何使用gulp-handlebars来缩小手柄模板

我有以下的车把结构: ├── gulpfile.js └── source/ └── templates/ ├── view1/ │ └── template11.handlebars └── view2/ └── template21.handlebars 得到这个: └── target/ └── js/ ├── view1.min.js └── view2.min.js 问题是如何创build实际缩小的预编译模板。 现在我只是得到开放的预编译的JS。 我的gruntfile.js是: const pump = require( 'pump' ) const rename = require( 'gulp-rename' ) const handlebars = require( 'gulp-handlebars' ) gulp.task( 'build-templates', ( done ) => { const views […]

在本地和全局安装gulp插件

我对Gulp很新,我有一个问题:我应该在本地还是全球安装gulp插件(如gulp-sass或gulp-imagemin)? 在Web上的例子中,大多数人都是在本地执行的(使用–save-dev选项)。 据我所知,通过这样做模块存储在本地node_modules文件夹中,作为devDependencies在本地package.json添加,并可以通过require()在本地gulpfile.js中引用。 所以,如果我需要为另一个项目安装相同的模块,可以通过将package.json复制到一个新项目的文件夹,然后在命令行工具(在进入项目文件夹之后)inputnpm install来完成。 精细。 但是如果我作为一个普通的gulp用户,没有计划在npm空间上传和分享我的东西,并且对维护devDependencies不感兴趣,我可以在这种情况下安装全局的npm install -g gulp-sass插件,比如npm install -g gulp-sass ? 他们会在我的系统中通过全球path被发现吗? 如果我不想自己复制package.json ,每次创build新项目时都运行npm install或者在我的磁盘上分散放置相同模块的多个副本,这是否是一个整体选项?

浏览器列表错误(名称)的吞吐构build

我试图用gulp来设置项目。 我使用了以前许多项目中使用的gulpfile.js,但是现在我得到了如下所示的BrowserslistError错误: {project_root}/node_modules/browserslist/index.js:38 throw new BrowserslistError(name); ^ BrowserslistError: Unknown browser query `var browserslist = require('./');` at error ({project_root}/node_modules/browserslist/index.js:38:11) at {project_root}/node_modules/browserslist/index.js:246:9 at Array.forEach (native) at browserslist ({project_root}/node_modules/browserslist/index.js:214:13) at cleanBrowsersList ({project_root}/node_modules/caniuse-api/dist/utils.js:56:59) at setBrowserScope ({project_root}/node_modules/caniuse-api/dist/index.js:26:43) at Object.<anonymous> ({project_root}/node_modules/caniuse-api/dist/index.js:88:1) at Module._compile (module.js:569:30) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:503:32) 我试图删除node_modules文件夹,并重新安装npm,但没有成功。