我开始使用Angular 2,我正在尝试使用以下文件夹结构:
- angular-app
- src
- dist
- package.json
其中src
是实际来源所在的位置,dist
是生产版本在打字稿编译之后的位置,等等。
现在,要运行应用程序,我已经使用了快速入门建议,我已经安装了lite-server
并且我将scripts
package.json
部分定义为:
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
"lite": "lite-server",
"postinstall": "typings install",
"tsc": "tsc",
"tsc:w": "tsc -w",
"typings": "typings"
}
现在,告诉lite-server
代码在src
内部我已经向根添加了一个文件夹configs
,其中一个bs-config.json
文件包含内容:
{
"port": 3000,
"files": ["./src/**/*.{html,htm,css,js}"],
"server": { "baseDir": "./src/" }
}
并将lite
脚本更改为lite-server -c configs/bs-config.json
。
现在,它确实在src
内提供文件。它找到了里面的一切。但是有一个问题。
在index.html
上,有几个脚本从../node_modules
加载。 lite-server
并不知道此文件夹,因此对于进入../node_modules
的任何请求,它都会返回404。
这是一个大问题。我该如何解决?如何从../node_modules
内请求src
内的脚本并由lite-server提供服务?
答案 0 :(得分:1)
您可以尝试将您的angular-app文件夹作为root添加到bs-config.json文件中(请注意baseDir中的其他"。")
"server": {
"baseDir": ["./src", "."]
}
像angular-app / src / index.html中的以下示例的引用:
<script src="node_modules/core-js/client/shim.min.js"></script>
然后将解析(假设您的nodes_modules将您的&#39; angular-app&#39;作为其父文件夹)。