Как мы делаем System.config (angular / systemjs?) Сейчас?(«System.config не является функцией») - PullRequest
0 голосов
/ 28 декабря 2018

Я унаследовал старый проект 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, если в эти дни мне придется загружать свои модули другим способом, и в этом случае приветствуются некоторые указатели о том, как перенастроить проект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...