我可以使用具有多个来源和多个目的地的Gulp任务吗?

我在我的gulpfile.js中有以下内容: var sass_paths = [ './httpdocs-site1/media/sass/**/*.scss', './httpdocs-site2/media/sass/**/*.scss', './httpdocs-site3/media/sass/**/*.scss' ]; gulp.task('sass', function() { return gulp.src(sass_paths) .pipe(sass({errLogToConsole: true})) .pipe(autoprefixer('last 4 version')) .pipe(minifyCSS({keepBreaks:true})) .pipe(rename({ suffix: '.min'})) .pipe(gulp.dest(???)); }); 我想输出我缩小的CSS文件到以下path: ./httpdocs-site1/media/css ./httpdocs-site2/media/css ./httpdocs-site3/media/css 我误解如何使用来源/目的地? 还是我想在一个任务中完成太多? 编辑:更新输出path到相应的站点目录。

套接字IO重新连接?

disconnect连接后,如何重新连接到套接字io? 这是代码 function initSocket(__bool){ if(__bool == true){ socket = io.connect('http://xxx.xxx.xxx.xxx:8081', {secure:false}); socket.on('connect', function(){console.log('connected')}); socket.on('disconnect', function (){console.log('disconnected')}); }else{ socket.disconnect(); socket = null; } } 如果我做的initSocket(true) ,它的作品。 如果我做initSocket(false) ,它断开连接。 但是,然后如果我尝试使用initSocket(true)重新连接,连接不再工作。 我怎样才能使连接工作?

使用nodejs的spawn会导致“未知选项 – ”和“”错误

我尝试着spawn一个rm -rf node_modules然后是npm install (在windows 7上; n x命令由一个透明安装的CygWin提供,所有n个 x命令都可以在命令行上parsing)。 我最初使用exec ,但想要捕捉stdout / stderr信息,所以我想我会使用spawn ,并重写代码使用它。 然而,这打破了一切。 rm命令改写成这样: var spawn = require("child_process").spawn, child = spawn("rm", ["-rf", "node_modules"]); child.stdout.on('data', function (data) { console.log(data.toString()); }); child.stderr.on('data', function (data) { console.log(data.toString()); }); child.on('error', function() { console.log(arguments); }); 但是,运行这将产生以下错误: rm: unknown option — , Try `rm –help' for more information. npm命令改写成这样: […]

如何请求node.js中的垃圾收集器运行?

在启动时,似乎我的node.js应用程序使用大约200MB的内存。 如果我放一会儿,它会缩小到9MB左右。 是否有可能在应用程序内: 检查应用程序使用了多less内存? 请求垃圾回收器运行? 我问的原因是,我从磁盘加载一些文件,这是临时处理。 这可能会导致内存使用率激增。 但是我不想在GC运行之前加载更多的文件,否则存在内存不足的风险。 有什么build议么 ?

使用npm命令时,找不到模块“npmlog”错误信息

今天是我第一份工作的第一天,通过更新我的Mac(OSX)上的节点和npm来设置我的开发环境之后,我似乎破了一些东西。 每次我尝试在我的命令行中使用npm(npm init,npm install等)时,我得到这个错误信息: module.js:339 扔呃; 错误:找不到模块'npmlog' 在Function.Module._resolveFilename(module.js:337:15) 在Function.Module._load(module.js:287:25) 在Module.require(module.js:366:17) 在require(module.js:385:17) 在/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13 在对象。 (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3) 在Module._compile(module.js:425:26) 在Object.Module._extensions..js(module.js:432:10) 在Module.load(module.js:356:32) 在Function.Module._load(module.js:311:12) 没有太多的错误消息,并且堆栈跟踪也无法帮助我。 以下是我所尝试的: search了一下Stackoverflow,虽然也有类似的问题,但是人们已经可以使用npm <something>来解决他们的问题,我不能这样做。 卸载并重新安装npm – 没有工作,因为我不能使用npm命令,所以像sudo npm uninstall npm -g这样的东西不起作用。 从.npm目录中删除npmlog目录,然后再次将github repo直接克隆到该目录。 希望你们之前遇到过这个问题,或者对如何解决这个问题有个想法。 任何帮助表示赞赏。

用webpack循环导入返回空对象

目前遇到这个确切的问题: FileA: var b = require file B var c = require file C FileB: var a = require file A FileC: var a = require file A 当我运行代码时,在文件C中出现错误: A.doSomething is not a function 在那里扔了一个debugging器,看到A是一个空的对象。 真奇怪的是我只在文件C中出现错误,而不是在文件B中出现错误。

如何使用MongoDB在Heroku上托pipe我自己的Parse Server?

(为了清楚起见,我问这个问题,以便提供我发现的答案,以帮助那些同样受到Parseclosures影响的人) Parse.com最近宣布,他们将于2017年1月份closures店面,但幸运的是,他们已经将他们的Parse Server软件开源,所以我们都可以托pipe我们自己的Parse服务器实例。 我已经研究了可用于托pipeparsing服务器的各种选项,并决定在Heroku上托pipe我的 我喜欢Parse,因为它很容易使用,而且我没有设置后端的真实经验。 我试图在网上关注几个指南,但是发现它们有点难以理解,模糊的步骤或步骤使您在另一个网站上的兔子洞中安装了一堆工具,这一切都变得混乱起来。 如何在Heroku上托pipeParse Server,将其设置为接受来自应用程序的跨域请求,创buildMongoDB数据库,并将所有数据从Parse迁移到新数据库?

了解延期执行链的语法

我正在学习JavaScript,真正学习JavaScript。 我来自PHP背景,所以一些JavaScript概念对我来说还是新的,特别是asynchronous编程。 这个问题可能已经被回答了很多次,但是我一直没有find答案。 这可能是因为除了举个例子之外,我甚至不知道怎么去问这个问题。 所以这里是: 当从npm使用延迟包时,我看到下面的例子: delayedAdd(2, 3)(function (result) { return result * result })(function (result) { console.log(result); // 25 }); 他们把这称为链接,它实际上工作,因为我目前正在使用这个代码来检查一个承诺是否解决或被拒绝。 尽pipe他们称之为链接,但它让我想起了像Swift那样的闭包。 我不明白这是什么types的链接,因为我们有一个函数调用,然后紧接在括号后面的一个匿名函数。 所以我想我有两个问题。 这是什么模式? 它是如何工作的? 这可能是一个加载的问题,但我想知道如何做的事情,所以当有人问我这个问题时,我可以给他们一个详细的解释。 这是delayedAdd函数: var delayedAdd = delay(function (a, b) { return a + b; }, 100); 它使用以下function: var delay = function (fn, timeout) { return function () { var […]

从v8 :: Arguments转换为C ++types

我正在用C ++创buildNode.js模块,但我难住了v8 :: Arguments类。 比方说,我有一个JavaScript类发送电子邮件,它有一个这样的签名方法: Mailer::sendEmail(Array recipients, String sender, String message); 这将被称为是这样的: mailer.sendEmail(["joe@gmail.com", "sally@gmail.com"], "fred@gmail.com", "Hi there"); 现在在C ++的土地,我有一个类签名function: SendEmail(const v8::Arguments& args) 这是支持我的梅勒:: sendEmail方法在Javascript土地。 SendEmail函数将创build我的Emailer类的新实例,它本身具有带有此签名的类函数: send(std::list<std::string> recipients, std::string from, std::string message) 而这就是我迷失的地方。 我不知道如何从args中取值,并将它们转换成常规的C ++types,所以我可以将值传递给我的发送函数。 据我所知,传递给Mailer :: sendEmail的3个值将在args [0] , args [1]和args [2]中可用。 我甚至明白,我可以做一些types检查, if (!args[0]->IsArray()) ,但实际上转换args [0]为std::list<std::string>是我不知道如何去做。 编辑:我发现这样做的一个hackish的方式,但我仍然认为V8有一些内置的方法来处理这个更清洁的方式。 static Handle<Value> SendEmail(const Arguments& args) { HandleScope […]

如何在docker构buildDockerfile时cachingRUN npm install指令

我目前正在为我的应用程序开发一个Node后端。 当dockerizing它(docker build)时,最长的阶段是RUN npm install 。 RUN npm install指令代表每个小型服务器代码更改,通过使开发人员等待每次完成构build来影响生产力。 我发现在应用程序代码所在的位置运行npm install并使用ADD指令将node_modules添加到容器可以解决这个问题,但这远非最佳实践。 这种方式打破了docker化的整体思路,导致集装箱重量增加。 任何其他解决scheme