无法在Angular 2应用程序中更改lite-server的基本文件夹

时间:2016-02-02 09:24:56

标签: node.js angular browser-sync lite-server

我正在浏览5 minute quickstart of Angular 2。但是,我的应用程序驻留在src/文件夹而不是我的存储库的根目录,当我运行npm start时,应用程序正在尝试在根目录中查找index.html文件。我阅读了lite-server,文档显示它使用了BrowserSync,我可以在我的存储库中使用BrowserSync重新配置bs-config.json。我这样做了,这就是我的配置:

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

根据日志,它使用指定的配置:

[1] > todo-app-angular2@1.0.0 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。我做错了什么?

2 个答案:

答案 0 :(得分:15)

您应该使用名为bs-config.js的文件(而不是bs-config.json文件)因为lite-server尝试使用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

希望它可以帮到你, 亨利

答案 1 :(得分:4)

来自=SUMIFS(Amt,Account,A2) 的答案不再正确(您已经),您可以使用Thierry Templierbs-config.json配置来调整浏览器同步配置。这是我最初为angular2 quick start example提出的JIT(即时)和AOT(Ahead-Of-Time)编译支持(bs-config.js

bs-config.json

从多个目录托管项目。

但是,我不喜欢这个解决方案,因为通过覆盖{ "port": 8000, "server": ["app", "."] } 文件中的server部分,同时覆盖了默认的json配置。

因此,我结束了以下方法,我使用了默认的lite-servermiddleware个文件并改为修改了它(bs-config.js):

config-defaults.js