JS文件中的System.register是什么意思?

时间:2016-09-09 04:49:53

标签: javascript angularjs angular

在使用angular 2中的指令时,JS文件中System.register的含义是什么意思。

1 个答案:

答案 0 :(得分:11)

我认为这个问题不是特定于angular2中的指令,它是关于ES6,TypeScript和其他使用SystemJS的现代编译器的一般性问题。简短的回答 - 它是由System.js创建的包装器,用于隔离代码并注入外部依赖项。

此代码:

  import { p as q } from './dep';

  var s = 'local';

  export function func() {
    return q;
  }

  export class C {
  }

将生成:

System.register(['./dep'], function($__export, $__moduleContext) {
 var s, C, q;
 function func() {
   return q;
 }
 $__export('func', func);
 return {
   setters: [
   // every time a dependency updates an export, 
   // this function is called to update the local binding
   // the setter array matches up with the dependency array above
   function(m) {
     q = m.p;
   }
   ],
   execute: function() {
     // use the export function to update the exports of this module
     s = 'local';
     $__export('C', C = $traceurRuntime.createClass(...));
     var moduleName = $__moduleContext.id;
   }
 };
});

在这里 - System register您可以找到关于这个问题的更多详细信息。