是的,我读过How do I shim a non CommonJS, non AMD package which depends on global jQuery & lodash?。
我正在尝试通过jspm加载X.js,这不是一个'包'但是我无法控制的旧js文件需要一个全局jQuery对象并且需要像脚本标签一样运行
我正在使用System.import('app / X');加载它。
我尝试了各种shim / globals技巧来加载它,但我无法弄明白。
如何编写config.js以便能够导入该X文件以便它看到全局jQuery对象?我是否必须将X设为'包'并安装它才能更好地填充它?
感谢。
答案 0 :(得分:3)
If you installed jquery through jspm, all you need is to set the meta 'deps' property like this:
System.config({
meta: {
'app/X': {
deps: ['jquery']
}
}
});
System.import('app/X');
Be sure to get the X path correctly and check how jspm sets up System.config 'paths' and 'map', by default trailing .js is added automatically (with paths *.js wildcard) so you must not add it.
Maybe try to look at these links from the documentation as well https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md#globals https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#meta
答案 1 :(得分:1)
如果提供meta' deps'如下所示的属性(由Mathias Rasmussen建议)并没有做到这一点,
System.config({
meta: {
'app/X': {
deps: ['jquery']
}
}
});
那么你可能需要提供一个全局的'元属性如下:
System.config({
meta: {
'app/X': {
globals: {
'jquery': 'jquery'
}
}
}
});
为了使上述功能正常工作,您需要通过jspm安装jquery。执行上述操作还应允许您通过执行System.import('app/X');
或import 'app/X';
来导入插件,而无需导入jquery。单独导入插件也应该将jquery作为依赖项。