如何在 Angular 6+ 中实现 systemjs?
How do I implement systemjs in Angular 6+?
我正在尝试学习如何让插件在 Angular 中工作,但是在添加 systemjs 之后我收到以下错误:
Uncaught ReferenceError: SystemJS is not defined
我是这样实现 systemjs 的:
import { System } from 'systemjs';
declare const SystemJS: System;
import * as angularCore from '@angular/core';
import * as angularCommon from '@angular/common';
import * as angularCommonHttp from '@angular/common/http';
import * as angularForms from '@angular/forms';
import * as angularAnimations from '@angular/animations';
import * as angularPlatformBrowser from '@angular/platform-browser';
import * as angularPlatformBrowserDynamic from '@angular/platform-browser-dynamic';
//error thrown here
SystemJS.set('@angular/core', SystemJS.newModule(angularCore));
SystemJS.set('@angular/common', SystemJS.newModule(angularCommon));
SystemJS.set('@angular/common/http', SystemJS.newModule(angularCommonHttp));
SystemJS.set('@angular/forms', SystemJS.newModule(angularForms));
SystemJS.set('@angular/animations', SystemJS.newModule(angularAnimations));
SystemJS.set('@angular/platform-browser', SystemJS.newModule(angularPlatformBrowser));
SystemJS.set('@angular/platform-browser-dynamic', SystemJS.newModule(angularPlatformBrowserDynamic));
SystemJS.config({ meta: { '*': { authorization: true } } });
我错过了什么?
我使用 systemjs 的代码:https://github.com/FrisoDenijs/angular-pluggable-architecture/blob/master/dashboard/src/app/dashboard/dashboard/dashboard.component.ts
我用作示例的回购协议:https://github.com/paucls/angular-pluggable-architecture
通过 package.json
安装 SystemJS(也许您需要根据需要安装旧版本)。
将 SystemJS Javascript 文件的路径添加到 angular.json
中的脚本。这样它就被加载到全局 space:
"scripts": [
"node_modules/systemjs/dist/system.min.js"
]
- 在您的文件中声明并使用它。
...
declare const SystemJS: System;
...
SystemJS.set('@angular/core', SystemJS.newModule(angularCore));
第 2 步是您遗漏的(我猜)以及它在您链接的回购协议中起作用的原因;它以相同的方式完成:https://github.com/paucls/angular-pluggable-architecture/blob/master/dashboard/.angular-cli.json
您的代码实际上并没有导入 SystemJS 模块本身,它只是导入了在运行时被剥离的类型声明。这就是为什么您需要将 SystemJS 添加到 scripts
-section
我正在尝试学习如何让插件在 Angular 中工作,但是在添加 systemjs 之后我收到以下错误:
Uncaught ReferenceError: SystemJS is not defined
我是这样实现 systemjs 的:
import { System } from 'systemjs';
declare const SystemJS: System;
import * as angularCore from '@angular/core';
import * as angularCommon from '@angular/common';
import * as angularCommonHttp from '@angular/common/http';
import * as angularForms from '@angular/forms';
import * as angularAnimations from '@angular/animations';
import * as angularPlatformBrowser from '@angular/platform-browser';
import * as angularPlatformBrowserDynamic from '@angular/platform-browser-dynamic';
//error thrown here
SystemJS.set('@angular/core', SystemJS.newModule(angularCore));
SystemJS.set('@angular/common', SystemJS.newModule(angularCommon));
SystemJS.set('@angular/common/http', SystemJS.newModule(angularCommonHttp));
SystemJS.set('@angular/forms', SystemJS.newModule(angularForms));
SystemJS.set('@angular/animations', SystemJS.newModule(angularAnimations));
SystemJS.set('@angular/platform-browser', SystemJS.newModule(angularPlatformBrowser));
SystemJS.set('@angular/platform-browser-dynamic', SystemJS.newModule(angularPlatformBrowserDynamic));
SystemJS.config({ meta: { '*': { authorization: true } } });
我错过了什么?
我使用 systemjs 的代码:https://github.com/FrisoDenijs/angular-pluggable-architecture/blob/master/dashboard/src/app/dashboard/dashboard/dashboard.component.ts
我用作示例的回购协议:https://github.com/paucls/angular-pluggable-architecture
通过
package.json
安装 SystemJS(也许您需要根据需要安装旧版本)。将 SystemJS Javascript 文件的路径添加到
angular.json
中的脚本。这样它就被加载到全局 space:
"scripts": [
"node_modules/systemjs/dist/system.min.js"
]
- 在您的文件中声明并使用它。
...
declare const SystemJS: System;
...
SystemJS.set('@angular/core', SystemJS.newModule(angularCore));
第 2 步是您遗漏的(我猜)以及它在您链接的回购协议中起作用的原因;它以相同的方式完成:https://github.com/paucls/angular-pluggable-architecture/blob/master/dashboard/.angular-cli.json
您的代码实际上并没有导入 SystemJS 模块本身,它只是导入了在运行时被剥离的类型声明。这就是为什么您需要将 SystemJS 添加到 scripts
-section