使用gulp进行简单设置 - browserify - browsersync:required未定义

时间:2018-01-28 19:45:47

标签: javascript gulp browserify

我有这个gulp代码可以正常使用浏览器同步和gulp sass编译器,我已经尝试插入一个browserify任务但似乎不起作用,如果我在命令行输入它就可以工作:

browserify src/js/main.js -o src/js/bundle/bundle.js

这是我的项目结构:

|-project
|--/src
|---/css
|----style.css
|---/js
|----main.js
|----/bundle
|-----bundle.js
|---/scss
|----_bootstrap.scss
|----style.scss
|---/assets
|----/img
|---index.html
|--gulpfile.js
|--package.json

这是我的gulp文件:

const gulp        = require('gulp');
const browserSync = require('browser-sync').create();
const sass        = require('gulp-sass');
const browserify  = require('browserify');

gulp.task('sass', () => {
    return gulp.src("./src/scss/*.scss")
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest("./src/css"))
        .pipe(browserSync.stream());
});

gulp.task('js',()=>{
  return gulp.src('./src/js/main.js')
  .pipe(browserify())
  .pipe(gulp.dest('./src/js/bundle'))
});





gulp.task('serve', ()=> {

    browserSync.init({
        injectChanges: true,
        server: "./src"
    });

    gulp.watch("./src/scss/*.scss", gulp.series('sass'));
    gulp.watch("./src/js/*.js", gulp.series('js'));
    gulp.watch("./src/*.html").on('change', browserSync.reload);
});




gulp.task('default', gulp.series('serve','sass','js'));

我最近添加了' js'任务但是当我在命令行中键入gulp时,一切正常,除了browserify任务。 作为测试,main.js文件如下所示:

const jquery = require('../../node_modules/jquery')
console.log(jquery)

我仍然收到错误'要求未定义'。我错过了一些东西。非常感谢

1 个答案:

答案 0 :(得分:0)

好吧,最后工作(似乎......)这不是浏览器化的问题,而是使用新版本的gulp,而不是:

gulp.task('default', gulp.parallel('serve','sass','js'));

我必须这样做:

            boolean isWaitingStarted = false;
                ...
                if (event.getAction()==MotionEvent.ACTION_UP){
                      if(!isWaitingStarted){
                          isWaitingStarted = true;
                          Thread one = new Thread() {
                              public void run() {
                                  try {

                                       Thread.sleep(1000);

                                       setRedBlock();
                                   } catch(InterruptedException v) {          
                                   }
                             }  
                           };

                        one.start();
                      } 
                } else {
                    setRedBlock(); 
                }

在sass和js任务没有启动之前,现在有并行功能似乎工作