2016-02-02 75 views
8

我正在通過5 minute quickstart of Angular 2。但是,我的應用程序駐留在src/文件夾中,而不是存放在我的存儲庫的根目錄中,並且當我運行npm start時,應用程序正試圖在根目錄中找到index.html文件。我閱讀了lite-server,文檔顯示它使用了BrowserSync,我可以在我的存儲庫中用bs-config.json重新配置BrowserSync。我這樣做,這就是我的配置是這樣的:無法在Angular 2應用程序中更改lite-server的基礎文件夾

{ 
    "port": 8123, 
    "server": { "baseDir": "./src" } 
} 

根據它使用指定的配置日誌:

[1] > [email protected] lite E:\GitHub\todo-app-angular2 
[1] > lite-server "./bs-config.json" 

我也試圖通過BS-config.js一個覆蓋

module.exports = { 
    port: 8123, 
    server: { 
    baseDir: "./src" 
    } 
}; 

但是,Angular應用程序仍然在端口3000上打開,它忽略了配置中定義的baseDir。我究竟做錯了什麼?

+0

嘗試增加'--config路徑/到/ BS-config.json ''在'npm開始'命令 – Sasxa

+0

我沒有,沒有效果:( –

+1

一定要使用lite-server v2瀏覽器同步配置選項文件 –

回答

14

你應該使用,因爲精簡版服務器稱爲bs-config.js文件(而不是bs-config.json之一)嘗試用require函數加載的模塊。配置應是一個有效的節點模塊:

module.exports = { 
    "port": 8123, 
    "server": { "baseDir": "./src" } 
}; 

查看此行中的源代碼:https://github.com/johnpapa/lite-server/blob/master/lib/lite-server.js#L20

該文件默認從用戶的項目文件夾中加載。

編輯

後挖多一點,我的回答的第一部分依賴於從GitHub的代碼,但不使用npm install(1.3.4版本)

有兩個實際安裝的一個在這種情況下選擇:

  • 端口
  • BASEDIR

使用此命令將解決您的問題:

$ lite-server --baseDir ./src --port 3333 

希望它可以幫助你, 蒂埃裏

+0

我其實忘了提及我已經嘗試過這個。 module.export在bs-config.js文件中仍然沒有任何效果:(實際上當我添加這個時,我的npm start會失敗 –

+0

我只是三編輯它,它仍然服務於./ [1] [BS]訪問URL: [1] --------------------------- --------- [1]本地:http:// localhost:3000 [1]外部:http://xx.xx.xx.xx:3000 [1] ----- ------------------------------- [1] UI:http:// localhost:3001 [1] UI外部:http://xx.xx.xx.xx:3001 [1] -------------------------------- ---- [1] [BS]提供的文件來自:./ –

+0

您使用哪種lite-server版本? –

3

Thierry Templier答案是不太正確的(再),你可以使用可以使用bs-config.jsonbs-config.js配置來調整您的瀏覽器同步配置。這是我想出了最初爲angular2 quick start example與JIT(剛剛在時間)和AOT(名列前茅的時間)編譯支持(bs-config.json

{ 
    "port": 8000, 
    "server": ["app", "."] 
} 

接待來自多個目錄中的項目。

但是,由於覆蓋在json文件server部分,默認middleware配置在同一時間覆蓋我不喜歡這種解決方案。

所以我用下面的方式結束,我把默認lite-serverconfig-defaults.js文件,並修改它,而不是(bs-config.js):

'use strict'; 
var fallback = require('connect-history-api-fallback'); 
var log = require('connect-logger'); 
/* 
| For up-to-date information about the options: 
| http://www.browsersync.io/docs/options/ 
*/ 
module.exports = { 
    port: 8000, 
    injectChanges: false, // workaround for Angular 2 styleUrls loading 
    filters: ['./**/*.{html,htm,css,js}'], 
    watchOptions: { 
    ignored: 'node_modules' 
    }, 
    server: ['./', 'app'], 
    middleware: [ 
    log({ format: '%date %status %method %url' }), 
    fallback({ 
     index: '/index.html', 
     htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'] // systemjs workaround 
    }) 
    ] 
}; 
相關問題