在 Angular 中使用 SystemJs 导入时找不到模块

Posted

技术标签:

【中文标题】在 Angular 中使用 SystemJs 导入时找不到模块【英文标题】:Cannot find module when importing with SystemJs in Angular 【发布时间】:2020-10-23 16:19:25 【问题描述】:

我正在尝试在 Angular 中使用 SystemJs 导入外部模块

    import  System  from 'systemjs';
    declare const SystemJS: System;

...

    SystemJs.import('./assets/example/example.js').then(m=>
      console.log('the module is', m);
    );

我也试过 http://localhost:4200/assets/example/example.js

js 文件在那里并且可以访问。

但我收到一个错误:

ERROR Error: Uncaught (in promise): Error: Cannot find module 'http://localhost:4200/assets/example/example.js'

我在一个干净的项目中尝试过,它工作正常,所以我认为问题可能与某些特定角度的配置有关。

有什么可能是错误的线索吗?

【问题讨论】:

这有帮助吗? ***.com/questions/35898339/… 如果您在构建后在该文件夹中导航,此文件是否放置在您指定的路径中? @Ostn,不,不是,但谢谢 @Sergey,是的,是的,我可以导航到资产或 uri,我可以找到它。 【参考方案1】:

你配置过 SystemJS 吗?

像这样:

System.config(
  baseURL: './src/app',

  // Set paths your modules
  paths: 
    'example': 'assets/example/example.js'
  
);

SystemJs.import('example').then(m=>
  console.log('the module is', m);
);

【讨论】:

以上是关于在 Angular 中使用 SystemJs 导入时找不到模块的主要内容,如果未能解决你的问题,请参考以下文章

在生产中使用 systemjs-angular-loader.js - 给出 404

如何使用 systemjs 在最小的 Angular 2 应用程序中加载 RxJS?

使用 SystemJS 的混合 AngularJS/Angular 应用程序中的 Lodash。我可以单独分配'_'吗?

typescript 对于博客 - 使用systemjs将Phoenix javascript客户端包含在Angular 2应用程序中

在 angular2 cli 中哪里可以找到 systemjs.config.js

Angular2 中对 SystemJS 的需求是啥?