错误来自postcss
插件,我想我可能写错了.
我想补充cssnano
和autoprefixer
到postcss
插件.
gulp/node_modules/gulp-postcss/node_modules/postcss/lib/processor.js:143
throw new Error(i + ' is not a PostCSS plugin');
^
Error: [object Object] is not a PostCSS plugin
at Processor.normalize (/Applications/XAMPP/xamppfiles/htdocs/sites/gulp/node_modules/gulp-postcss/node_modules/postcss/lib/processor.js:143:15)
at new Processor (/Applications/XAMPP/xamppfiles/htdocs/sites/gulp/node_modules/gulp-postcss/node_modules/postcss/lib/processor.js:51:25)
at postcss (/Applications/XAMPP/xamppfiles/htdocs/sites/gulp/node_modules/gulp-postcss/node_modules/postcss/lib/postcss.js:73:10)
at Transform.stream._transform (/Applications/XAMPP/xamppfiles/htdocs/sites/gulp/node_modules/gulp-postcss/index.js:47:5)
at Transform._read (_stream_transform.js:167:10)
at Transform._write (_stream_transform.js:155:12)
at doWrite (_stream_writable.js:300:12)
at writeOrBuffer (_stream_writable.js:286:5)
at Transform.Writable.write (_stream_writable.js:214:11)
at DestroyableTransform.ondata (/Applications/XAMPP/xamppfiles/htdocs/sites/gulp/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:531:20)
Mac-a45e60e72dad:gulp JoeKonst$
Run Code Online (Sandbox Code Playgroud)
我的代码:
// Dependancies
var gulp = require('gulp'),
browserSync = require('browser-sync'),
plumber = require('gulp-plumber'),
autoprefixer = require('gulp-autoprefixer'),
uglify …
Run Code Online (Sandbox Code Playgroud) 我创建了一个gulp的glob,它忽略了一组目录中的javascript和coffeescript文件.我希望它将所有其他文件复制到一个工作正常的目录中.唯一的问题是,当只有javascript或coffeescript文件时,它会复制一个空文件夹.有关如何修改此glob以不复制空文件夹的任何想法?
gulp.task('copyfiles', function(){
gulp.src('apps/*/static_src/**/!(*.js|*.coffee)')
.pipe(gulp.dest('dest'));
});
Run Code Online (Sandbox Code Playgroud)
示例源文件:
apps/appname/static_src/images/image.jpg
apps/appname/static_src/js/script.js
Run Code Online (Sandbox Code Playgroud)
预期产量:
dest/static_src/images/image.jpg
Run Code Online (Sandbox Code Playgroud)
当前输出:
dest/static_src/images/image.jpg
dest/static_src/js/
Run Code Online (Sandbox Code Playgroud) gulpfile.js
'use strict';
var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;
gulp.task('serve')
// Static Server + watching scss/html files
gulp.task('serve', function() {
browserSync.init({
server: "./public"
});
gulp.watch('./public/**/*.html').on('change', reload); // worked
gulp.watch('./public/**/*.js').on('change', reload); // doesn't work
});
gulp.task('sass', function () {
return gulp.src('./public/sass/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('./public/css'))
.pipe(reload({stream: true}));
});
gulp.task('sass:watch', function () {
gulp.watch('./public/sass/**/*.scss', ['sass'])
});
gulp.task('default', ['serve','sass', 'sass:watch']);
Run Code Online (Sandbox Code Playgroud)
使用上述gulp设置,当我更改html和sass文件时,我的broswersnyc可以正常工作,但不适用于javascript文件。
这是我的文件夹结构:
它与AngularJS有关吗?因为我app.js
(位于我的public
文件夹中)由AngularJS控制器组成。
我server.js
在同一个目录中有一个文件gulpfile.js
。在gulpfile.js
我需要我的server.js
文件:
var express = require('./server.js')
Run Code Online (Sandbox Code Playgroud)
我想在default
任务中运行它:
gulp.task('default' , [ 'build','watch','connect'] , function(){
gulp.run('express');
});
Run Code Online (Sandbox Code Playgroud)
我试图像那样运行它,但它没有用。我想你只能以这种方式运行任务。我怎样才能在default
任务中运行它?
该server.js
文件包含以下代码:
var express = require('express');
var app = express();
app.get('/api/test', function(req,res){
res.send('Hello world!')
});
app.listen(3000, function(){
console.log('Example app listening on port 3000!');
})
Run Code Online (Sandbox Code Playgroud) 我写了一个函数来创建一个嵌套列表.
例如:
input= ['a','b','c','','d','e','f','g','','d','s','d','a','']
Run Code Online (Sandbox Code Playgroud)
我想先创建一个子列表 ''
作为回报,我想要一个嵌套列表,如:
[['a','b','c'],['d','e','f','g'],['d','s','d','a']]
Run Code Online (Sandbox Code Playgroud) 我无法理解这一点.这应该是每次修改监视文件时执行的gulp任务.任何人都可以解释为什么需要通过changed
插件管道监视文件?
gulp.task('build-css', function () {
return gulp.src(paths.css)
.pipe(changed(paths.output, {extension: '.css'}))
.pipe(gulp.dest(paths.output));
});
gulp.task('watch', ['serve'], function() {
gulp.watch(paths.css, ['build-css']);
});
Run Code Online (Sandbox Code Playgroud)
免责声明:这不是我的代码.只是想了解发生了什么,以便创建我自己的自定义监视任务.
您好我有以下gulpfile.js:
'use strict';
var gulp = require('gulp'),
jshint = require('gulp-jshint'),
sass = require('gulp-ruby-sass'),
compass = require('gulp-compass'),
gutil = require('gulp-util'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
cleanCSS = require('gulp-clean-css'),
sourcemaps = require('gulp-sourcemaps'),
templateCache = require('gulp-angular-templatecache'),
path = require('path');
/* Default Gulp Task */
gulp.task('default', ['sass', 'mfb-sass', 'bower-css', 'bower-js', 'app-js', 'ng-templates'], function () {
return gutil.log('Gulp is running!')
});
/* Build SASS files */
gulp.task('sass', function () {
return gulp.src('./src/sass/*.scss')
.pipe(sourcemaps.init())
.pipe(compass({
project: path.join(__dirname, '/'),
css: 'dist/css',
sass: 'src/sass'
})) …
Run Code Online (Sandbox Code Playgroud) 我的Gulp文件中有3个必须按此顺序运行的任务:
clean
(删除/dist
文件夹中的所有内容)copy
(将多个文件复制到/dist
文件夹中)replace
(替换文件/dist
夹中某些文件中的一些字符串)我已经阅读了所有其他帖子,我尝试过"run-sequence",但由于"替换"任务最后没有运行,因此无法正常工作.我对使用"回调"感到困惑.单独运行任务工作正常.
var gulp = require('gulp');
var runSequence = require('run-sequence');
gulp.task('runEverything', function(callback) {
runSequence('clean',
'copy',
'replace',
callback);
});
gulp.task('clean', function () {
return del(
'dist/**/*'
);
});
gulp.task('copy', function() {
gulp.src('node_modules/bootstrap/dist/**/*')
.pipe(gulp.dest('dist/vendor'))
//...
return gulp.src(['index.html', '404.html', '.htaccess'])
.pipe(gulp.dest('dist/'));
});
gulp.task('replace', function(){
gulp.src(['dist/index.php', 'dist/info.php'])
.pipe(replace('fakedomain.com', 'realdomain.com'))
.pipe(gulp.dest('dist'));
return gulp.src(['dist/config.php'])
.pipe(replace('foo', 'bar'))
.pipe(gulp.dest('dist'));
});
Run Code Online (Sandbox Code Playgroud)
使用这3个任务的完整示例将不胜感激.谢谢.
该vinyl-ftp
软件包有一个功能,clean()
但我不知道如何正确使用它.我需要:
build
文件夹中获取所有文件我有以下gulp任务:
gulp.task('deploy', () => {
let conn = ftp.create({host:host,user:user,password: password});
return gulp.src('build/**', {base: './build/', buffer: false })
.pipe(conn.newer('/path/on/my/server/')) // only upload newer files
.pipe(conn.dest('/path/on/my/server/'))
.pipe(conn.clean('build/**', './build/'));
});
Run Code Online (Sandbox Code Playgroud)
1)和2)是可以的,但clean()
功能什么都不做
我不知道为什么gulp.series()
不触发回调函数。
我正在尝试使用从用户输入中获取字符串,gulp-prompt
并使用调用构建和部署功能gulp.series()
。我的任务gulp.series()
根本不执行。
gulp.task('test', function(){
const prompt = require('gulp-prompt');
return gulp.src('test.js')
.pipe(prompt.prompt({
type: 'checkbox',
name: 'env',
message: 'which environment do you want to deploy to?',
choices: ['qa','prod']
},function(res){
//console.dir(res.env);
var env = res.env;
console.log(env);
console.log('hi');
gulp.series('clean', 'patternlab:build', 'tag-version', deployWeb.bind(this, env), function(done){
done();
});
}));
});
Run Code Online (Sandbox Code Playgroud) gulp ×9
javascript ×6
node.js ×4
angularjs ×1
browser-sync ×1
express ×1
ftp ×1
glob ×1
gulp-4 ×1
gulp-changed ×1
gulp-concat ×1
gulp-uglify ×1
postcss ×1
python ×1
python-3.x ×1
run-sequence ×1
vinyl ×1
vinyl-ftp ×1
watch ×1