Articles of gulp

如果在gulpfile.js以外的其他文件夹中安装了gulp(node_modules),如何运行gulp

我有一个目录中的gulpfile.js和另一个目录中的node_modules。 当我运行gulp,我得到错误 – '本地gulp未find'(目录)..尝试运行:npm install gulp' 问题是 – 我不能在gulpfile.js目录中安装gulp,所以我需要一种方法来告诉gulp参考其他目录,我已经安装了gulp。

在Gulp中只复制文件夹内的文件

我正在尝试将一个文件夹内的所有文件复制到另一个文件夹的吞食任务 gulp.task('copy-fonts', ['unzip'], function() { return gulp.src('./gulp-tmp/**/fonts/*') .pipe(gulp.dest('fonts')); }); 问题是, gulp-tmp之后的目录名称有所不同,所以我必须在那里使用** 。 所以结果就像/fonts/[randomFolderName]/fonts/[the files] 我想要的是/fonts/[the files]

咕噜咕噜咕噜咕噜咕唧咕唧咕

我必须做两个步骤: 使.css文件forms更less 缩小生成的CSS文件 这是我的大文件: var gulp = require('gulp'), watch = require("gulp-watch"), less = require('gulp-less'), cssmin = require('gulp-cssmin'), rename = require('gulp-rename'); gulp.task('watch-less', function () { watch({glob: './*.less'}, function (files) { // watch any changes on coffee files gulp.start('compile-less'); // run the compile task }); watch({ glob: ['./*.css', '!./*.min.css'] }, function(files) { gulp.start('minify-css'); // run the compile […]

Gulp手表不起作用

我是新的Gulp用户,我尝试使用简单的脚本来观看指南针,但它不起作用。 但是当我刚运行gulp compass gulp时可以编译它。 有任何想法吗? 在这里我的脚本: var gulp = require('gulp'), compass = require('gulp-compass'), // Compass gulp.task('compass', function() { gulp.src('./assets/scss/*.scss') .pipe(compass({ config_file: './config.rb', css: './assets/css', sass: './assets/scss' })) .pipe(gulp.dest('./assets/css')); }); // Default task gulp.task('default', function() { gulp.start('compass'); }); // Watch gulp.task('watch', function() { // Watch .scss files gulp.watch('./assets/scss/*.scss', ['compass']); });

子任务执行没有明确的定义

有没有人有一个解决scheme自动运行'子任务'中的? 我是新来的吞咽,目前结构我的吞噬文件是这样的: gulp.task('build:ccss', function(cb) { … } gulp.task('build:js', function(cb) { … } gulp.task('build:img', function(cb) { … } gulp.task('build:index', function(cb) { … } 然后我明确地定义基本任务,并让它执行子任务: gulp.task('build', ['build:scss', 'build:js', 'build:img', 'build:index']); 我使用这个结构来完成几个“小组”的任务:清洁,build筑,掉毛。 我很好奇,如果有人有一个解决scheme,当基本任务运行时自动执行子任务,而不是像我一样创build一个明确的定义。

Gulp连接不运行服务器

我创build了gulpfile.js,并在其中使用了gulp-connect gulp.task('connect', function(){ connect.server({ root: 'dev', livereload: true, port: 8000 }); }) 当我运行gulp connect它不维护我的服务器localhost:8000 。 [14:08:51] Starting 'connect'… [14:08:51] Server started http://localhost:8000 [14:08:51] LiveReload started on port 35729 [14:08:51] Finished 'connect' after 13 ms 因此,当打开http://locahost:8000时,我什么也得不到 我能做些什么来使连接工作,并创build一个服务器来部署我的HTML?

节点path相对于吞吐的解释.pipe()

我的问题从另一个开始,在这里问: Gulp:如何设置相对于处理文件的dest文件夹(使用通配符时)? 我有类似的情况,我需要在每个模块的基础上制作压缩版本。 就是我有 ui/test/one/script1.js ui/test/two/script2.js 我需要将这些文件复制到相关的目录中,这样我才能完成 ui/test/one/compressed/script1.js ui/test/two/compressed/script2.js 我有以下吞咽任务 gulp.task('test', function() { return gulp.src('ui/test/**/*.js') .pipe(gulp.dest(function(file) { return path.join(path.dirname(file.path), 'compressed'); })); }); 但是,当我运行它,我结束了 ui/test/one/compressed/one/script1.js ui/test/two/compressed/two/script2.js 我在文档中看到它所说的内容 cwd – 指定文件夹相对于的工作目录。 base – 指定相对于cwd的文件夹。 缺省值是glob开始的地方。 这用于在保存.dest()时确定文件名 我有几个问题,特别是关于.src() .dest()和path和文件对象。 (也就是说,虽然我确信还有其他方法可以实现我的最终目标,但是这个问题具体是关于上述示例代码的行为和所提及的function,所以我可以更好地理解它们的行为和API。 问题 当文档说“工作目录文件夹是相对的”,这是什么文件夹? 在同一个笔记上,关于这个评论和在文档中的地方说:“base – 指定文件夹相对于cwd。默认是glob开始的地方”什么是“glob开始的地方”是什么意思? 我对“glob”的理解是它是整个string,但是它真的意味着该string中的一个*字符吗? 所以对于一些/文件some/folder/a/b/c/foo.js文件存在'一些/文件夹/ ** / * some/folder/a/b/c/foo.js我不知道如果基地是some/folder/ , some/folder/a/ ,或者some/folder/a/b/c/ ? 有什么方法可以说<where the glob […]

gulp-useref – 不同级别文件夹中的相对输出path

目前有办法做相关的输出path吗? 在gulp-useref或其他? 我目前的情况: project_folder/ app/ index.html about/ index.html scripts/ index.js about.js 在基于app/的index.html ,一切工作正常: <!– build:js scripts/main.min.js –> <script src="/scripts/main.js"></script> <!– endbuild –> index.html文件位于scripts文件夹旁边,以便相对path正确同步。 但是这里是about/index.html : 如果我像这样传递path – ../scripts/about.min.js – 生成的about.min.js得到的输出文件夹太远,导致这种情况: project_folder/ scripts/ about.min.js dist/ index.html about/ index.html scripts/ index.min.js 用about/index.html在<script src="../scripts/about.min.js"></script>寻找它。 如果我没有在about/index.html传入相对path: about.min.js最终在适当的位置,但是在about/index.html设置为<script src="scripts/about.min.js"></script>path不正确。 build议? 我可以有不同版本的useref任务运行在不同的文件夹级别。 我也考虑过一些方法来改变path后,基于它离基文件夹有多远,但我不知道从哪里开始,如果这是一个可行的select。 我只是不知道我是否错过了更明显的东西。 因为这是一个我正在放在一起的工具中的一个function,所以每次手动执行都不是真正可行的。 这是我的gulpfile.js与此相关的片段。 我有一个运行在这之前的nunjucks模板,所以这就是为什么它从.tmp : gulp.task('html', ['templates'], function() […]

Gulp不创build文件夹?

当我缩小我的CSS,我留下了不同的图书馆的字体不正确的path。 所以,我创build了一个任务,将字体从我的bower_components/文件夹移到dist/public/fonts : gulp.task('doit', function() { gulp.src(["public/bower_components/bootstrap/dist/fonts/*", "public/bower_components/font-awesome/fonts/*"]) .pipe(gulp.dest("dist/public/fonts")); }); 基本上,应该把我需要的任何字体到一个通用的字体文件夹,我的缩小的CSS现在应该能够访问。 但是运行后, dist/public/fonts不存在。 为什么不?

在启动时打开Karma debug.html页面

简短版本: 我该如何启动Karma并让它在Karma开始页面的同一浏览器中自动打开debug.html文件? 长版: 我不是使用控制台记者噶的一个巨大的风扇,所以我一直在使用Karma的本地主机:9876 / debug.html文件输出karma茉莉花-html记者,livereload 。 问题是,每次我开始一个debugging会话,我必须点击业务打开的网页中的“debugging”button。 我想find一个方法来让业力通过一个吞噬任务自动打开debug.html页面。 我在多个浏览器中运行testing,因此我希望打开debug.html页面作为Karma打开的每个浏览器的第二个选项卡。 我也想在closureskarma时closuresdebug.html选项卡。 我尝试了一堆东西,没有成功。 这是我的g task任务。 'watch'任务监视我的源脚本TypeScript文件,并将它们编译成javascript …没有任何幻想。 gulp.task('watch-test', ['watch'], function (done) { //start a livereload server so that the karma html //reporter knows to reload whenever the scripts change livereload.listen(35729); gulp.watch('dist/src/**/*.js').on('change', livereload.changed); new KarmaServer({ configFile: __dirname + '/karma.conf.js', singleRun: false }, done).start(); });