angular-oauth2-oidc库无法加载jsrsasign模块

时间:2017-09-29 13:31:44

标签: angular npm oauth angular-seed angular-oauth2-oidc

我正在尝试升级Angular中依赖于以下项目的依赖项:https://github.com/mgechev/angular-seed

依赖项是:https://github.com/manfredsteyer/angular-oauth2-oidc但是我不太确定我的System.JS文件需要如何正确加载oauth2-oidc所依赖的jsrsasign依赖项。目前,我有一个看起来像的项目.config.ts:

   // Add packages
    let additionalPackages: ExtendPackages[] = [
      {
       name: 'angular-oauth2-oidc',
       // Path to the package's bundle
       path: 'node_modules/angular-oauth2-oidc/angular-oauth2-oidc.umd.js'
      },
      {
       name: 'jsrsasign',
       // Path to the package's bundle
       path: 'node_modules/jsrsasign/lib/jsrsasign.js'
      }
     ];

加载我的项目会导致如下错误:

    (SystemJS) Module not already loaded loading "jsrsasign" as http://localhost:5555/node_modules/jsrsasign/lib/jsrsasign.
        Error: Module not already loaded loading "jsrsasign" as http://localhost:5555/node_modules/jsrsasign/lib/jsrsasign.
  at Object.eval (http://localhost:5555/node_modules/angular-oauth2-oidc/angular-oauth2-oidc.umd.js:1862:10)

我已经在网上搜寻高低,似乎无法理解如何强行加载。

此文档:https://manfredsteyer.github.io/angular-oauth2-oidc/angular-oauth2-oidc/docs/additional-documentation/using-systemjs.html

似乎提出了答案,但我已经尝试将这个添加到seed.config.ts,没有任何乐趣。

直接从我的seed.config.ts文件中获取: enter image description here

任何人都可以解释如何针对System.JS / angular seed正确配置此库吗?

2 个答案:

答案 0 :(得分:1)

这似乎可以获得更好的结果(在包裹下)。

   'angular-oauth2-oidc': {
        main: 'angular-oauth2-oidc.umd.js',
        format: 'cjs',
        defaultExtension: 'js',
        map: {
          'jsrsasign': '/node_modules/jsrsasign/lib/jsrsasign',
        },
        meta: {
            'angular-oauth2-oidc': {
                deps: ['require','jsrsasign']
            },
        }
  }

答案 1 :(得分:0)

这在我的project.config.ts文件中对我有用

    const additionalPackages: ExtendPackages[] = [
  {
    name: 'jsrsasign',
    path: 'node_modules/jsrsasign',
    packageMeta: {
      main: 'lib/jsrsasign.js',
      export: "jsrsasign"
    }
  },
  {
    name: 'angular-oauth2-oidc',
    path: 'node_modules/angular-oauth2-oidc',
    packageMeta: {
      main: 'angular-oauth2-oidc.umd.js',
      format: 'cjs',
      defaultExtension: 'js',
      meta: {
        'angular-oauth2-oidc': {
          deps: ['require', 'jsrsasign']
        },
      }
    }
  }
];

this.addPackagesBundles(additionalPackages);