我想进入Angular2。我已经阅读了一些关于systemjs.config.js正在做什么的Stack Exchange帖子和一些互联网文章。但是,我发现所有这些解释都使用了" app"太多次了。
当index.html说:
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
..什么是应用程序&#39;争论?我的示例配置文件有3个对象,其中2个有&#34; app&#34;键,其中一个甚至有一个&#34; app&#34; &#34; app&#34;的价值键。此外,还有一个应用程序&#34;文件夹,我确定这不是巧合。最重要的是,有很多文件以&#34; app&#34;开头。 (app.module.ts等),但所有这些都存在于app文件夹中,因此我不知道它们是否重要。
我尝试过更改为.import(&#39; app2&#39;),但我唯一可以理解的不会导致中断的是将地图键更改为app2(地图:{app2:& #34; app&#34;})。但对于我的生活,我无法弄清楚如何改变其他事物。我尝试过更改文件夹名称,键和值。因此,例如,以下内容不起作用(即使我将app文件夹更改为app2或app3):
map: {
app2: "app3"
}
packages: {
app3: { ... }
}
有人可以用简单的英语解释这些事情的顺序以及它们之间的关系吗?
PS:这篇文章Can anyone explain systemjs.config.js in angular2?非常有助于解释&#34; map&#34;的其他内容。对象正在做,并且&#34;路径&#34;对象也是如此,但它没有解释我要问的部分。
答案 0 :(得分:0)
完成编辑: 好。经过多次实验和研究,我发现了这个:
有三件事情需要匹配:System.import的参数,systemjs.config的 map 对象中的键名,以及systemjs.config中的键名< strong>包对象。只要它们都匹配,您就可以为它们命名。
map的键值必须指向一个文件夹,而package的键值“main”键必须指向该文件夹中的文件。
我将进一步探讨以下内容:
- 答案:相对于index.html
- ?
- 答案:是的,这条路可以是相对的,甚至可以“向上”(“../”)。
- 答案:所以,如果你的ts文件在“app”文件夹中,并且你使用outDir到“dist”文件夹,并且你的root中有一个“test.ts”文件,那么就不能使用{outDir :dist}。相反,你必须使用{outDir:dist / app}。