我试图用JiT和angular-cli学习这个tutorial。我在浏览器控制台中遇到以下错误,但终端没有错误来运行/构建应用程序。
未捕获的ReferenceError:系统未定义(...)
未捕获错误:找不到模块' ./ locale / messages.fr.xlf!text'。(...)
我的代码在github https://github.com/sayedrakib/internationalization_project.git
根据教程中的说明,我在根文件夹中添加了systemjs-text-plugin.js。 文件结构
我想我在某些文件中搞砸了文件路径,因为我觉得教程中的假定文件结构和angular-cli创建的文件结构不一样。
答案 0 :(得分:2)
我可以看到你正在使用angular-cli,而不是你想要加载3party libery,你需要使用angular-cli.json文件。
首先在您的应用目录npm install systemjs
运行
其次,您需要在angular-cli.json文件中添加systemjs的路径。
"scripts": [
"../node_modules/systemjs/dist/system.js"
]
如果你需要加载其他3方教程,只需重复2个阶段。
答案 1 :(得分:1)
花了我很多时间来弄清楚这一点!
如果您按照文档进行操作,请更改:
最后它看起来像这样:
的index.html
<body>
<app-root>Loading...</app-root>
<script src="system.js"></script>
<script>
// Get the locale id somehow
document.locale = 'es';
// Map to the text plugin
SystemJS.config({
map: {
text: 'systemjs-text-plugin.js'
}
});
</script>
</body>
I18N-providers.ts
export function getTranslationProviders(): Promise<Object[]> {
[...]
}
declare let SystemJS: any;
function getTranslationsWithSystemJs(file: string) {
return SystemJS.import(file + '!text'); // relies on text plugin
}
我打开了GitHub Issue来更新文档。