Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >大口传递要处理的文件

大口传递要处理的文件
EN

Stack Overflow用户
提问于 2016-08-09 07:42:40
回答 1查看 69关注 0票数 1

我有一个包含两个任务的gulp文件,它对一组文件执行完全相同的操作,唯一的区别是输入文件与输出名称和目标。是否可以使用相同的任务来处理2批文件而不复制代码?我想是某种函数。我尝试过传递参数和查看google,但是可以找到任何例子来说明我试图实现的目标。

代码语言:javascript
运行
AI代码解释
复制
var outPutFolder = '../';

//Array of all the JS files to compile for scripts.min.js
var js = [
    'js/library/_helpers.js',
    'js/library/_form-validation.js',
    'js/page/_global.js',
    'js/library/_ga_event_tracking.js',
    'js/library/_postcode-anywhere.js',
    'js/library/_count-down-timer.js',
    'js/page/_home-page.js',
    'js/page/_main_navigation.js',
    'js/page/_myaccount.js',
];

//Array of all the JS files to compile for scripts-external.min.js
var externalJs = [
    'js/external/_bootstrap.min.js',
    'js/external/_bootstrap-select.js',
    'js/external/_bootbox.min.js',
    'js/external/_jquery.lazyload.js',
    'js/external/_jquery.bxslider.js',
];

//JS Task to check files for errors, compile and then minify
gulp.task('scripts', function() {
  return gulp.src(js)
      .pipe(eslint())
      .pipe(eslint.format())
      .pipe(concat('scripts.min.js'))
      .pipe(gulp.dest(outPutFolder + 'js'))
      .pipe(notify({ title:"scripts.min.js",message: "Successfully Compiled", onLast: true }))
      .on('end', function () { gutil.log('scripts.min.js compiled successfully!'); });
});

//JS Task to check files for errors, compile and then minify
gulp.task('scriptsExternal', function() {
  return gulp.src(externalJs)
    .pipe(eslint())
    .pipe(eslint.format())
    .pipe(concat('scripts-external.min.js'))
    .pipe(gulp.dest(outPutFolder + 'js'))
    .pipe(notify({ title: "scripts-external.min.js", message: "Successfully Compiled", onLast: true }))
    .on('end', function () { gutil.log('scripts-external.min.js compiled successfully!'); });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 08:05:32

变式1:

gulpfile是纯JavaScript文件,因此您可以使用函数。但是,如果要按顺序使用此任务,则必须返回filestream。试试这个:

代码语言:javascript
运行
AI代码解释
复制
var outPutFolder = '../';

//Array of all the JS files to compile for scripts.min.js
var js = [];

//Array of all the JS files to compile for scripts-external.min.js
var externalJs = [];

function doStuff(in, out) {
  return gulp.src(in)
    .pipe(eslint())
    .pipe(eslint.format())
    .pipe(concat(out))
    .pipe(gulp.dest(outPutFolder + 'js'))
    .pipe(notify({ title: out,message: "Successfully Compiled", onLast: true }))
    .on('end', function () { gutil.log(out + ' compiled successfully!'); });
}

//JS Task to check files for errors, compile and then minify
gulp.task('scripts', function() {
  return doStuff(js, 'scripts.min.js');
});

//JS Task to check files for errors, compile and then minify
gulp.task('scriptsExternal', function() {
  return doStuff(externalJs, 'scripts-external.min.js');
});

变式2:

或者您可以使用environment variables触发此操作。

代码语言:javascript
运行
AI代码解释
复制
var outPutFolder = '../';

//Array of all the JS files to compile for scripts.min.js
var js = [];

//Array of all the JS files to compile for scripts-external.min.js
var externalJs = [];

var in = gutil.env.external ? externalJs : js;
var out = gutil.env.external ? 'scripts-external.min.js' : 'scripts.min.js';

//JS Task to check files for errors, compile and then minify
gulp.task('scripts', function() {
  return gulp.src(in)
    .pipe(eslint())
    .pipe(eslint.format())
    .pipe(concat(out))
    .pipe(gulp.dest(outPutFolder + 'js'))
    .pipe(notify({ title: out,message: "Successfully Compiled", onLast: true }))
    .on('end', function () { gutil.log('scripts.min.js compiled successfully!'); });
});

并运行该任务

代码语言:javascript
运行
AI代码解释
复制
gulp scripts --external
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38855116

复制
相关文章
iOS 事件传递和处理
iPhone拥有很好的用户交互体验,这源于iOS系统对交互事件的高效处理和高优响应; App开发者处理用户交互非常便捷,这源于iOS系统和UIKit对用户操作做了封装和默认处理; 本文围绕iOS的事件传递和处理,探究其具体过程。
落影
2021/05/06
1.5K0
linux和windows之间传递文件
依赖于pscp文件,而windows系统下,一般没有安装。所以,需要先安装pscp应用程序。 pscp 下载pscp 放入windows的system32 文件夹下; 传送文件 windows从ubuntu服务器下载文件 背景一:假设要将ubuntu服务器下的/home/fresh/finalproject.tar下载windows下E:盘下,假设linux机器的端口是22,用户名是:fresh; 解决方法: 在Windows的cmd中输入 pscp -P 22 fresh@serverIP:/ho
用户1631856
2018/07/03
1.7K0
React路由传递params、search、state参数的相关处理
路由传递参数基本都分为三个步骤:传递参数、声明接收参数、获取参数 传递params参数 <!-- 传递参数 --> <Link to={`/路径/${value}/${value}`} <!-- 声明接收参数 --> <Route path="/路径/:key/:key" /> //获取参数 console.log(this.props.match.params) 传递state参数 <!-- 传递参数 --> <Link to={{pathname: '/路径', state: {key: value
peng_tianyu
2022/12/15
1.2K0
【Python】异常处理 ⑤ ( 异常传递 | 异常处理顺序 | 代码示例 )
在 Python 中 , 异常是具有传递性的 , 该特性是 Python 中的一个重要特性 , 它使得代码更加健壮和可靠 ;
韩曙亮
2023/10/11
4730
【Python】异常处理 ⑤ ( 异常传递 | 异常处理顺序 | 代码示例 )
Java的参数传递是值传递还是引用传递
当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递?    答:是按值传递。Java 语言的参数传递只有按值传递。当一个实例对象作为参数被传递到方
nnngu
2018/03/15
3.4K0
Java的参数传递是值传递还是引用传递
【一分钟知识】异常处理,值传递和引用传递
异常处理 关键字:throws、throw、try、catch、finally try用来指定一块预防所有异常的程序; catch子句紧跟在try块后面,用来指定你想要捕获的异常的类型; throw语句用来明确地抛出一个异常; throws用来声明一个方法可能抛出的各种异常(当然声明异常时允许无病呻吟); finally为确保一段代码不管发生什么异常状况都要被执行; Java中,每个异常都是一个对象,它是Throwable类或其子类的实例 当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用
java思维导图
2018/03/15
5770
java中的参数传递-值传递、引用传递
参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
chenchenchen
2022/11/29
4.8K0
java中的参数传递-值传递、引用传递
Apache 伪静态处理跳转中传递参数
下面对比一下,看第一个配置文件 # 将 RewriteEngine 模式打开 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^m.
小小科
2018/05/04
1.4K0
nodejs服务器如何接收前端传递的文件
之前发过用nodejs搭建静态服务器的文章,今天和大家探讨一下如何利用nodejs接收前端上传的文件。
挥刀北上
2019/07/19
15.1K0
nodejs服务器如何接收前端传递的文件
使用文件描述符传递实现自己的cluster
parent.js const childProcess = require('child_process'); const net = require('net'); const workers = []; const workerNum = 10 ; const handle = net._createServerHandle('127.0.0.1', 11111, 4); for (let i = 0; i < workerNum; i++) { const worker = child
theanarkh
2020/12/14
7980
Bug 要这样处理才专业!
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->松哥要升级 SpringBoot 视频了,看看新增了哪些内容!
江南一点雨
2020/12/14
3430
JS处理函数将对象作为参数传递
做项目的时候遇到一个不是很常见的问题,就是js函数传递参数的时候,我们一般是传递一个数字或者是一个字符串,但是当你的需求满足不了的时候,就需要将对象或者数组作为一个参数传递过去,这个时候怎么做呢,今天简单的说有一下:
何处锦绣不灰堆
2020/05/29
7.2K0
Hexo问题分享:忽略要编译的文件
Hexo作为开源的博客平台,我们其实可以自定义一些自己喜欢的主题或者页面,我们只需要在source目录下填加一个demo目录放一些示例文件,hexo默认会编译source目录下的所有文件。下面主要给大家分享一下小明遇到的一个技术点:比如有时候demo目录并不需要编译,比如:404.html。
程序员小明
2019/10/14
1.5K0
Hexo问题分享:忽略要编译的文件
记一次传递文件句柄引发的血案
apue 上讲 Solaris 系统是可以在进程间通过 STREAMS 管道传递文件句柄的。
海海
2022/08/19
5070
记一次传递文件句柄引发的血案
(六)处理 emit 传递的方法类型和computed 类型定义
一、定义 emits 类型&原生 DOM 元素类型 触发自定义事件 <script setup lang="ts"> function 事件名(传递的字段名: 类型) { // 逻辑代码 ... } </script> 二、computed 计算属性类型定义 computed 可以根据返回值来自动推断类型,所以就不用手动定义类型了 <script setup lang="ts"> import { computed } from 'vue' const xxx = computed(()
老怪兽
2023/02/22
6010
Mastercam要如何开启后处理视窗中的”选取后处理[P]功能?
数控编程、车铣复合、普车加工、Mastercam、行业前沿、机械视频,生产工艺、加工中心、模具、数控等前沿资讯在这里等你哦
lrglu
2023/10/13
5460
Mastercam要如何开启后处理视窗中的”选取后处理[P]功能?
Python中的文件处理
我们在Python中使用open()函数以读取或写入模式打开文件。如上所述,open()将返回文件对象。为了返回文件对象,我们使用open()函数以及两个参数,该参数接受文件名和模式(无论是读取还是写入)。因此,语法为:open(filename,mode)。Python提供了三种模式以及如何打开文件:
用户7466307
2020/07/14
2K0
进程间传递文件描述符fd
众所周知,子进程会继承父进程已经打开的文件描述符fd,但是fork之后的是不会被继承的,这个时候是否无能无力了?答应是NO。Linux提供了一个系统调用sendmsg,借助它,可以实现进程间传递文件描述符fd,而且不仅限于父进程到子进程。sendmsg函数的原型如下:
一见
2018/08/10
4K0
java之方法的参数传递(值传递和引用传递)
基础数据类型参数传递方式只有一种:值传递。即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响;
西西嘛呦
2020/08/26
2.2K0
点击加载更多

相似问题

大口,大口大口

40

停止大口大口的手表任务?

21

大口大口不管用

10

大口大口的手表翻页

11

大口大口的图像未完成

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档