Articles of gulp

在gulp中执行任意节点脚本

我想运行一个index.js文件作为我的吞咽过程的一部分。 我可以像这个线程( 如何在gulp中运行bash命令? )中描述的那样通过像gulp-shell这样的东西添加node index.js ,但似乎应该有一个更简单的方法。 我觉得会有一个名为gulp-node的插件或者其他的东西来做,但是它不存在。 别人怎么做,而不把你的初始脚本变成一个吞咽插件,这似乎侵入?

export NODE_ENV =生产不会改变gulpfile.js中的process.env.NODE_ENV

我试图设置环境variables$ NODE_ENV为“生产” export NODE_ENV=production 但是当我尝试运行我的吞噬任务时,它说variables是未定义的: if((process.env.NODE_ENV).trim().toLowerCase() !== 'production') { ^ TypeError: Cannot read property 'trim' of undefined at Object.<anonymous> (/Users/mmarinescu/Projects/gulpTutorial/gulpfile.js:15:26) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Module.require (module.js:366:17) at require (module.js:385:17) at Liftoff.handleArguments (/usr/local/lib/node_modules/gulp/bin/gulp.js:116:3) at Liftoff.<anonymous> (/usr/local/lib/node_modules/gulp/node_modules/liftoff/index.js:192:16) at module.exports (/usr/local/lib/node_modules/gulp/node_modules/liftoff/node_modules/flagged-respawn/index.js:17:3) 如果我echo $NODE_ENV ,则显示生产关键字。 在这个例子中,我的gulp设置如下: var devBuild = ((process.env.NODE_ENV).trim().toLowerCase() […]

如何从node_modules文件夹添加package.json依赖项?

我正在一个项目上工作, 我不小心删除了我的package.json文件,然后我再次使用npm init命令来创build一个新的,但我已经在我的node_modules有很多吞咽扩展… 所以,现在我怎么能再次添加这些依赖关系到我的新的package.json文件 package.json文件如何从我的node_modules文件夹中获取依赖关系列表?

Gulp:中止构build,如果命令行参数丢失

我已经写了一个pipe道几个任务,所有这取决于一个强制性的参数,这是从命令行读取,使用yargs插件yargs 。 可以说我有 gulp.task('myBuild', function () { return gulp.src('./' + <providedSubDir> + '/') .pipe(// do something or fail if <providedSubDir> is missing) .pipe(gulp.dest('./' + providedSubDir + '/')); }); 如果强制参数providedSubDir没有在通话中提供,我现在怎么能失败呢?

gulp中父任务inheritancegulpfile.js

我正在使用node / gulp来运行/构build我的项目。 在这些项目中,我的咕噜声看起来非常相似。 由于我来自Java / Maven背景,所以我正在寻找某物。 像一个父gulpfile可以inheritance基本任务(这很容易与maven中的父pom.xml)。 这是不是成了一个吞噬,有没有模块做这个或我需要自己的数据呢? 我可以想到有一个节点模块没有做任何其他的事情,然后提供一个可以从他的依赖的吞咽文件需要的基本的吞咽任务。 有没有像这样的方法的经验? BR Chris

一个承诺多重承诺 – 并发问题

在我的“gulpfile.js”的“myMethod”方法中,我想创build多个Promise。 数量取决于数组大小(方法参数)。 当我打电话给我的方法时,我想确保所有的承诺都在我继续之前完成。 我宁愿在所有的承诺都未履行之前回来。 请看看最后五行代码。 依赖 var promiseAll = require('gulp-all'); var del = require('del'); var deleteEmpty = require('delete-empty'); gulp-all | del | 删除空 帮助者方法 var oneForAllPromises = function(promises){ var promAll = promiseAll(promises); promAll.then(function(param) { console.log('foo'); }, function(err) { console.error('foo'); }); return promAll; } 有问题的代码 var myMethod = function(array1, array2){ var promise = del(array1, {force: true}); […]

SCSS插值错误,尝试连接一个循环中的variables后的百分比符号

所以这个SCSS代码在我的Macbook上工作正常,但不是我的Ubuntu机器: @each $distance, $color in $range-distances{ @each $track in $tracks { .distance-slider–#{$distance}#{$track}{ background: #{$color}; background-image: linear-gradient(to right, #{$color} #{$distance}%, $grey 0); } } } 我得到以下错误: [Task Failed [scss/_modules/input-range.scss Error: Invalid CSS after "…} #{$distance}%": expected expression (eg 1px, bold), was ", $grey 0);" on line 101 of scss/_modules/input-range.scss >> -gradient(to right, #{$color} #{$distance}%, $grey 0); […]

发布到Azure时找不到模块gulp.js

我在Visual Studio中有一个基于MVC5项目模板的网站项目,并且不断成功发布到Azure。 由于我将我的TFVC工作区从一个驱动器(C :)移动到另一个驱动器(Z :),创build一个新的工作区并从源代码控制获得最新版本,所以我发布了一些问题: module.js:327 在node.js:999:3 “预发布”脚本失败,状态码为1。 在Function.Module._load(module.js:276:25) ^ 在Function.Module.runMain(module.js:429:10) 在启动(node.js:139:18) 扔呃; 在Function.Module._resolveFilename(module.js:325:15) 找不到模块'Z:… Website \ node_modules \ gulp \ bin \ gulp.js' 我的预发布命令在project.json文件中: "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ] 经过几个小时的更新扩展和包,并运行npm命令,我迷路了。 任何提示解决这个问题将不胜感激。 我跟着这个问题在Azure构build中的Node.js错误 ,并将我的预发布命令更改为: "prepublish": [ "npm install", "bower install" ] 这允许我再次发布,但我想在发布之前运行gulp命令。

在CruiseControl.NET上运行gulp任务

有没有人有任何经验CruiseControl上运行吞咽? 我们有一些麻烦,通过XMLconfiguration文件自动化的过程。 可以通过本地和虚拟机上的CommandPrompt手动启动任务,但是从CruiseControl启动时出现错误: ThoughtWorks.CruiseControl.Core.Tasks.BuilderException: Unable to execute: gulp TaskName System.IO.IOException: Unable to execute file [D:\CC.NET\VSS\%CorrectPathName%\gulp]. The file may not exist or may not be executable. 任何帮助深表感谢。 更新在尝试了Simon Laing所build议的之后,开始出现另一个错误: <buildresults> <message level="Error">module.js:327</message> <message level="Error"> throw err;</message> <message level="Error"> ^</message> <message level="Error">Error: Cannot find module 'D:\CC.NET\VSS\Path\to\the\project\gulp'</message> <message level="Error"> at Function.Module._resolveFilename (module.js:325:15)</message> <message level="Error"> at Function.Module._load (module.js:276:25) </message> […]

在子文件夹中执行gulp命令

我的项目结构如下: myapp -server.js -test –testcontent —package.json -package.json 我有两个package.json文件,我想在testcontent文件夹内的package.json上运行npm install 。 如果在命令行中,我去myapp/test/testcontent然后运行npm install它会工作,它会从正确的package.json创build一个新的文件夹node_modules 。 怎么可以从内部完成呢? 我尝试了以下,但它使用myapp的package.json而不是testcontent子文件夹中的testcontent : gulp.task('default', function () { var options = { continueOnError: true, // default = false, true means don't emit error event pipeStdout: true, // default = false, true means stdout is written to file.contents customTemplatingThing: "test" // content passed to […]