这是让lite-server识别bs-config.js中“server.index”覆盖的正确方法吗?

时间:2017-09-05 03:51:59

标签: lite-server

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”时,控制台显示它正在尝试提供index.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?

1 个答案:

答案 0 :(得分:0)

lite-server的config-default.js在其第二个中间件“fallback”函数中设置索引。这似乎是在覆盖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的中间件,将索引回退放在中间件函数数组的不同索引位置,或者设置不同的响应头,则需要更改此bs-config解决方案相应

的引用: Browserync文档:https://browsersync.io/docs/options

lite-server:https://github.com/johnpapa/lite-server