gulp - 浏览器同步: scripts won't load from parent dir

标签 gulp browser-sync npm-live-server

我正在尝试使浏览器同步以在我的项目中工作,而不是使用实时服务器

该应用程序的结构如下所示:

personal-app
├── node_modules
└── src
    ├── app
    │   └── app.ts
    └── index.html  

在index.html中,脚本是从 node_modules 目录加载的
<script src="../node_modules/systemjs/dist/system.src.js"></script>
<script src="../node_modules/angular2/bundles/angular2.dev.js"></script>

当我使用实时服务器时,它会加载脚本并可以正常工作,但是由于我移至浏览器同步,因此脚本不会加载。这是gulpfile.js中的代码:
gulp.task('serve', function() {
    browserSync.init({
        server: {
            baseDir: "./src"
        }
    });
    gulp.watch(sassfiles, ['sass']);
    gulp.watch(htmlfiles).on('change', browserSync.reload);
});

当我将src路径作为基本目录baseDir: "./src"
该网站可以正常运行,但脚本无法加载

enter image description here

但是当我将其更改为baseDir: "./"

该网站给我无法GET/,但是当我在chrome中将“/src”添加到url中时,就像“http://localhost:3000/src”一样,它可以工作。

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

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

浏览器同步有可能吗?

最佳答案

browser-sync documentation

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);
});

关于gulp - 浏览器同步: scripts won't load from parent dir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33692642/

相关文章:

node.js - 如何在 Node.js 和 npm 安装后运行实时服务器

npm - 如何在 Visual Studio Code 中获取 Live Server 的外部 URL?

npm - 如何使用 package.json 中的 NPM 脚本启动来运行/启动 json-server 和 live-server?

javascript - 不使用 run() 编写 gulpfile.js

angularjs - Intellij 不断编译 TypeScript(非常慢)——如何阻止这种行为?

angular - 是否可以通过浏览器同步为 Angular 2 组件注入(inject) sass/css 更新?

javascript - React 热模块替代方案——Rollup、Gulp 和 Browsersync

javascript - 为什么要在服务器上构建 MEAN 应用程序?

javascript - 使用 Google Closure Compiler 调试代码删除

node.js - BrowserSync 无法获取/