【问题标题】:" Cannot read property 'resolve' of undefined" error“无法读取未定义的属性‘解决’”错误
【发布时间】:2016-01-18 16:56:53
【问题描述】:

我尝试使用 SystemJS 来加载之前编译成 ES5 的模块。我有以下错误,但我不知道如何解释错误信息:

Error: Cannot read property 'resolve' of undefined(…)
  Promise.reject (async)
  g @ system.src.js:4597(anonymous function) @ system.src.js:4597
  y @ system.src.js:4597
  w @ system.src.js:4597
  p @ system.src.js:4597
  h @ system.src.js:4597
  (anonymous function) @ system.src.js:4597

这是我的 HTML 文件中的配置:

<script src="https://rawgithub.com/systemjs/systemjs/0.19.6/dist/system.js"></script>
(...)
<script>
  System.config({
    packages: {        
      somepackage: {
        format: 'register',
        defaultExtension: 'js'
      },
      src: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });
  System.import('src/somefile')
        .then(null, console.error.bind(console));
</script>

我可以启用一些调试模式/跟踪吗?

我尝试直接使用Angular2的源代码,而不是捆绑的JS文件。

非常感谢您的帮助! 蒂埃里

【问题讨论】:

    标签: angular systemjs


    【解决方案1】:

    假设该文件夹 node_modules 可公开访问!

    如果是这样,你可以使用这个 SystemJS 配置文件:

    System.config({
        defaultJSExtensions: true,
        map: {
            "app": './src',
            "angular2": 'node_modules/angular2',
            'rxjs/operator/*' : 'node_modules/rxjs/add/operator/*',
            "rxjs": 'node_modules/rxjs',
            "reflect-metadata": 'node_modules/reflect-metadata/temp/Reflect.js',
            "zone.js": 'node_modules/zone.js/dist/zone.js'
        },
        packages: {
            app: {
                defaultExtension: 'js',
                format: 'register'
            },
            angular2: {
                defaultExtension: 'js',
            },
            rxjs: {
                defaultExtension: 'js'
            },
            'reflect-metadata': {
                format: 'global'
            }
        }
    });
    

    【讨论】:

    • 非常感谢,弗拉多!这非常有用 ;-) 这几乎让我发疯了!我做了一个小更新,直接使用angular2-polyfills.js 而不是reflect-metadatazone.js...
    • 我计划就此写一篇博文,因为它可以用于链接 Angular2 TypeScript 源上的应用程序以进行调试...
    • 是的,那会很酷。这种设置有利于自定义捆绑,它给你更多的控制权......我假设我们不需要 angular.js、http.js 中的所有东西......
    • 绝对同意!我的最终目标是能够逐步调试/执行 Angular2 TypeScript 源代码;-) 你的 SystemJS 很酷,因为它允许提供对加载内容/如何加载的精细选择...
    猜你喜欢
    • 2019-08-01
    • 1970-01-01
    • 2021-05-10
    • 2020-12-18
    • 2017-06-02
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多