使用SystemJS导入jquery不起作用

时间:2017-01-05 21:33:21

标签: javascript jquery systemjs

我无法弄清楚如何使用SystemJS导入jQuery,使其适用于我的项目。 的index.html:

...
<script>
  System.import('app').catch(function(err){ console.error(err); });
  System.import('jquery').catch(function(err){ console.error(err); });
  System.import('bootstrap').catch(function(err){ console.error(err); });
</script>
...

错误:

(index):26错误:(SystemJS)Bootstrap的JavaScript需要jQuery     错误:Bootstrap的JavaScript需要jQuery     在eval

systemjs.config.js

(function (global) {
  System.config({
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',

      // angular bundles
      ...

      'jquery': "npm:jquery/dist/jquery.min.js",
      'bootstrap': "npm:bootstrap/dist/js/bootstrap.min.js",

      // other libraries
      'rxjs':                      'npm:rxjs'
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
      app: {
        main: './main.js',
        defaultExtension: 'js'
      },
      rxjs: {
        defaultExtension: 'js'
      }
    }
  });
})(this);

1 个答案:

答案 0 :(得分:1)

这是因为bootstrap首先导入。

导入是异步的。一个可以先导入另一个。强制命令:

System.import('jquery')
.then(function($) {
  System.import('bootstrap');
})
.catch(function(err){ console.error(err); });