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' 
    }
  }
}

上記のコンソール ログ出力では、「index.3.html」の bs-config.json インデックスのデフォルトを認識しますが、ブラウザが「GET http://localhost」を要求すると、コンソールはインデックスを提供しようとしていることを示します。 index.3.html の代わりに .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 は、2 番目のミドルウェアの "フォールバック" 関数でインデックスを設定します。これは 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

ライトサーバー: https://github.com/johnpapa/lite-server

于 2017-09-05T03:51:59.343 に答える