1

lite-server 似乎忽略了我覆盖默认索引的尝试。

我有 bs-config.json:

{
  "server": {
    "baseDir": "src",
    "index": "/index.3.html",
    "routes": {
      "/node_modules": "node_modules"
    }
  }
}

我正在使用 lite-server 版本 2.3.0,如下所示:

> lite-server -c=bs-config.json

browser-sync config **

{ injectChanges: false,
  files: [ './**/*.{html,htm,css,js}' ],
  watchOptions: { ignored: 'node_modules' },
  server:
   { baseDir: 'src',
     middleware: [ [Function], [Function] ],
     directory: true,
     index: '/index.3.html',
     routes: { '/node_modules': 'node_modules' 
    }
  }
}

在上面的控制台日志输出中,它识别出 bs-config.json 索引默认为“index.3.html”,但是,当浏览器请求“GET http://localhost ”时,控制台显示它正在尝试提供索引.html 而不是 index.3.html。

[Browsersync] Serving files from: src
[Browsersync] Watching files...
17.09.04 22:35:51 404 GET /index.html

我也尝试过提供 bs-config.js:

"use strict";

module.exports = {
  "server": {
    "baseDir": "src",
    index: "i/index.3.html",
    "directory":true,
    "routes": {
      "/node_modules": "node_modules"
    }
    // middleware,: {
    //   // overrides the second middleware default with new settings
    //   1: require('connect-history-api-fallback')({index: '/index.3.html', verbose: true})
    // }
  }
}

并运行 lite-server:

> lite-server -c=bs-config.js

但行为是一样的。

问题:如何为 lite-server 覆盖 bs-config 的 server.index?

4

1 回答 1

0

lite-server 的 config-default.js 在它的第二个中间件“回退”函数中设置索引。这似乎覆盖了 bs-config 设置。

所以解决方案似乎是,覆盖中间件以根据需要设置索引。

bs-config.js:

module.exports = {
  "server": {
    "baseDir": "src",
    "routes": {
      "/node_modules": "node_modules"
    },
    middleware: {
      // overrides the second middleware default with new settings
      1: require('connect-history-api-fallback')({
          index: '/index.3.html', 
          htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'] // systemjs workaround})
    }
  }
}

注意: 1. 如果未来版本的 lite-server 改变了它的 default-config 的中间件,将 index fallback 放在中间件函数数组的不同索引位置,或者设置不同的响应头,那么这个 bs-config 解决方案将需要相应地改变。

参考:Browsersync 文档:https ://browsersync.io/docs/options

精简服务器:https ://github.com/johnpapa/lite-server

于 2017-09-05T03:51:59.343 回答