首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Gulp的Cordova钩子:目标文件是在脚本结束后使用cordova serve生成的

使用Gulp的Cordova钩子:目标文件是在脚本结束后使用cordova serve生成的
EN

Stack Overflow用户
提问于 2017-04-16 19:39:41
回答 1查看 127关注 0票数 0

我在一个cordova项目中使用Gulp,我使用Cordova Hook添加了一个gulp脚本,如下所示:

代码语言:javascript
复制
<hook type="before_serve" src="minification.js" />

我的问题是生成的文件(all.css和all.min.css)是在"cordova服务“结束后写在磁盘上的。所以当这个命令在"browser“子文件夹中复制文件时,它们还没有出现。我怀疑管道在吞咽,但有人能确切地解释原因吗?

以下是代码:

代码语言:javascript
复制
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');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-17 07:12:59

我终于用古力解决了这个问题。

我用以下代码替换了我的代码:

代码语言:javascript
复制
require('child_process').execSync('gulp my_task', {stdio:[0,1,2]});

我用这个代码创建了一个文件gulpfile.js:

代码语言:javascript
复制
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']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43441331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档