我正在浏览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。我做错了什么?
答案 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)实际安装的代码
在这种情况下有两种选择:
使用此命令可以解决您的问题:
$ lite-server --baseDir ./src --port 3333
希望它可以帮到你, 亨利
答案 1 :(得分:4)
来自=SUMIFS(Amt,Account,A2)
的答案不再正确(您已经),您可以使用Thierry Templier
或bs-config.json
配置来调整浏览器同步配置。这是我最初为angular2 quick start example提出的JIT(即时)和AOT(Ahead-Of-Time)编译支持(bs-config.js
)
bs-config.json
从多个目录托管项目。
但是,我不喜欢这个解决方案,因为通过覆盖{
"port": 8000,
"server": ["app", "."]
}
文件中的server
部分,同时覆盖了默认的json
配置。
因此,我结束了以下方法,我使用了默认的lite-server的middleware
个文件并改为修改了它(bs-config.js):
config-defaults.js