Я унаследовал старый проект C # MVC / TypeScript / Angular с правом его выполнения.Часть процесса включала в себя обновление нескольких узловых пакетов и пакетов nuget.Поэтому я иногда зацикливаюсь на проекте, который написан в стиле, который я никогда не использовал, написанном в стиле, который может быть слишком старым для того, как сейчас работают Angular и др., И я даже не уверен, каков будет конечный результатдолжен выглядеть или делать.Но я ценю вызов.
В рамках обновлений systemjs перешел с v0.2 ish до 2.1 ish.Также Angular материал был v2.ish и теперь v7.ish, и некоторые пакеты изменили имя, например angular2-in-memory-web-api -> angular-in-memory-web-api
К счастью, это довольноbarebones как проект, так что, надеюсь, проблемы на этом этапе довольно элементарные.
У меня есть systemjs.config.ts (который успешно компилируется в .js), который выглядит следующим образом:
/**
* System configuration for Angular samples
* Adjust as necessary for your application needs.
*/
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': '/node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: '/Scripts/Discussion',
shared: '/Scripts/shared',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
shared: {
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
},
'angular-in-memory-web-api': {
main: './index.js',
defaultExtension: 'js'
}
}
});
})(this);
И страница, которая содержит мое приложение, выглядит как этот HTML (когда MVC завершил вывод его)
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<base href="/123/discussion/">
<title>_BoardLayout</title>
<script src="/Scripts/Libraries/jquery-2.2.2.js"></script>
<script src="/Scripts/Libraries/jquery.signalr-2.2.0.js"></script>
<script src="/Scripts/polyfills/Intl.js"></script>
<script src="/node_modules/core-js/client/shim.js"></script>
<script src="/node_modules/zone.js/dist/zone.js"></script>
<script src="/node_modules/reflect-metadata/Reflect.js"></script>
<script src="/node_modules/systemjs/dist/system.js"></script>
<script src="/Scripts/TinyMce/tinymce.min.js"></script>
<script src="/Scripts/Discussion/systemjs.config.js"></script>
<script>
window["localeStrings"] = {
strings: {
}
};
window["appConfig"] = { apiUrl: "/api/" };
window["sessionConfig"] = { token: '123', role: 'moderator', userId: 1 };
System.import('app').catch(function(err) { console.error(err); });
</script>
<link href="/Content/less/discussion.less" rel="stylesheet"/>
</head>
<body>
<discussion-app></discussion-app>
</body>
</html>
System.import
работает нормально;Я вижу это в автозаполнении в консоли, но System.config
отсутствует.Что мы делаем в качестве замены в эти дни?
Примечание: я понял следующее: System.config не определен , что, по-видимому, означает, что System.config исчез, и вместо этого он должен быть<script
> редактировался как блок json, но я не понимал, что мне нужно делать с ним в моей ситуации MVC / typcripted, в частности чистый способ представить его на странице без Razor, интерпретируя множественное число @angular
внутриscript
И, наконец, я не склонен полностью разбивать systemjs, если в эти дни мне придется загружать свои модули другим способом, и в этом случае приветствуются некоторые указатели о том, как перенастроить проект