我在一个cordova项目中使用Gulp,我使用Cordova Hook添加了一个gulp脚本,如下所示:
<hook type="before_serve" src="minification.js" />我的问题是生成的文件(all.css和all.min.css)是在"cordova服务“结束后写在磁盘上的。所以当这个命令在"browser“子文件夹中复制文件时,它们还没有出现。我怀疑管道在吞咽,但有人能确切地解释原因吗?
以下是代码:
var fs = require('fs');
var cache = require('gulp-cached');
const gulp = require('gulp');
const sourcemaps = require('gulp-sourcemaps');
const autoprefixer = require('gulp-autoprefixer');
const concat = require('gulp-concat');
var cleanCSS = require('gulp-clean-css');
if (fs.existsSync('./www/css/all.css')) fs.unlinkSync('./www/css/all.css');
if (fs.existsSync('./www/css/all.css.map')) fs.unlinkSync('./www/css/all.css.map');
gulp.task('autoprefixer', function() {
return gulp.src('./www/css/*.css')
.pipe(cache('autoprefixer'))
.pipe(autoprefixer({
browsers: ['> 1%','last 2 versions','Firefox ESR','iOS 8']
}))
.pipe(gulp.dest('./www/css/'));
});
gulp.task('cleanCSS', function() {
return gulp.src('./www/css/*.css')
.pipe(cache('cleanCSS'))
.pipe(sourcemaps.init())
.pipe(concat('all.css'))
.pipe(cleanCSS())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./www/css/'));
});
gulp.task('default', ['autoprefixer', 'cleanCSS']);
gulp.start('default');发布于 2017-04-17 07:12:59
我终于用古力解决了这个问题。
我用以下代码替换了我的代码:
require('child_process').execSync('gulp my_task', {stdio:[0,1,2]});我用这个代码创建了一个文件gulpfile.js:
var fs = require('fs');
var cache = require('gulp-cached');
const gulp = require('gulp');
const sourcemaps = require('gulp-sourcemaps');
const autoprefixer = require('gulp-autoprefixer');
const concat = require('gulp-concat');
var cleanCSS = require('gulp-clean-css');
if (fs.existsSync('./www/css/all.css')) fs.unlinkSync('./www/css/all.css');
if (fs.existsSync('./www/css/all.css.map')) fs.unlinkSync('./www/css/all.css.map');
gulp.task('autoprefixer', function() {
return gulp.src('./www/css/*.css')
.pipe(cache('autoprefixer'))
.pipe(autoprefixer({
browsers: ['> 1%','last 2 versions','Firefox ESR','iOS 8']
}))
.pipe(gulp.dest('./www/css/'));
});
gulp.task('cleanCSS', function() {
return gulp.src('./www/css/*.css')
.pipe(cache('cleanCSS'))
.pipe(sourcemaps.init())
.pipe(concat('all.css'))
.pipe(cleanCSS())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./www/css/'));
});
gulp.task('my_task', ['autoprefixer', 'cleanCSS']);https://stackoverflow.com/questions/43441331
复制相似问题