browser-sync:脚本不会从父目录加载

Mur*_*sli 6 gulp browser-sync npm-live-server

我正在尝试让浏览器同步在我的项目中工作,而不是使用live-server

应用程序结构如下所示:

personal-app
??? node_modules
??? src
    ??? app
    ?   ??? app.ts
    ??? index.html  
Run Code Online (Sandbox Code Playgroud)

index.html中,脚本从node_modules dir 加载

<script src="../node_modules/systemjs/dist/system.src.js"></script>
<script src="../node_modules/angular2/bundles/angular2.dev.js"></script>
Run Code Online (Sandbox Code Playgroud)

当我使用live-server时,它会加载脚本并且工作正常,但是由于我移动到浏览器同步,脚本不会加载.这是gulpfile.js中的代码:

gulp.task('serve', function() {
    browserSync.init({
        server: {
            baseDir: "./src"
        }
    });
    gulp.watch(sassfiles, ['sass']);
    gulp.watch(htmlfiles).on('change', browserSync.reload);
});
Run Code Online (Sandbox Code Playgroud)

当我将src路径作为基础目录时,baseDir: "./src" 该站点可以工作,但脚本不会加载

在此输入图像描述

但当我改变它 baseDir: "./"

该网站给了我不能GET /,但是当我将"/ src"添加到chrome中的url时,如" http:// localhost:3000/src ",它可以工作.

所以这里的问题是浏览器同步不会从其baseDir的父文件夹加载脚本.

我需要一种方法来配置浏览器同步以从其启动baseDir : "./"但从子文件夹加载主页index.html.

浏览器同步可能吗?

Mur*_*sli 14

来自浏览器同步文档

baseDir可以采用多个路径.我添加了index.html存在的src文件夹.

gulp.task('serve', function() {
    browserSync.init({
        server: {
            baseDir: ["./", "./src"]   //added multiple directories 
        }
    });
    gulp.watch(sassfiles, ['sass']);
    gulp.watch(htmlfiles).on('change', browserSync.reload);
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的伴侣,这个我快3个小时:). (2认同)
  • 这救了我的命,我快疯了 (2认同)