使用jspm来加载依赖全局jQuery的脚本



是的,我已经阅读了如何加载非CommonJS,非AMD软件包,这取决于全局jQuery &lodash ?。

我试图加载X.js,通过jspm,这不是一个"包",而是一个旧的js文件,我没有控制,需要一个全局的jQuery对象,需要像在一个脚本标签中运行。

我使用System.import('app/X');

我尝试了各种shim/globals技巧,使其加载,但我不能完全弄清楚。

如何编写config.js能够导入X文件,使其看到一个全局jQuery对象?我是否必须使X成为一个"包"并安装它才能更好地填充它?

谢谢。

如果你通过jspm安装了jquery,你所需要做的就是像这样设置meta 'deps'属性:

System.config({
  meta: {
    'app/X': {
       deps: ['jquery']
    }
  }
});
System.import('app/X');

确保正确获取X路径并检查jspm如何设置System。配置'paths'和'map',默认情况下会自动添加。js(带有paths *.js通配符),所以你不能添加它。

也可以试着看看文档中的链接https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md#globals https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#meta

如果像下面这样提供元'deps'属性(由Mathias Rasmussen建议)不能做到这一点,

System.config({
  meta: {
    'app/X': {
       deps: ['jquery']
    }
  }
});

,那么你可能需要提供一个'globals'元属性,如下所示:

System.config({
  meta: {
    'app/X': {
       globals: {
           'jquery': 'jquery' 
       }
    }
  }
});

为了使上面的工作,你需要通过jspm安装jquery。这样做也应该允许你通过做System.import('app/X');import 'app/X';导入插件,而不必导入jquery。单独导入插件也会使jquery成为一个依赖项。

最新更新