使用 jspm 加载依赖全局 jQuery 的脚本
Use jspm to load script that depends on global jQuery
是的,我读过 How do I shim a non CommonJS, non AMD package which depends on global jQuery & lodash?。
我正在尝试通过 jspm 加载 X.js,它不是 'package' 而是一个我无法控制的旧 js 文件,它需要一个全局 jQuery 对象,并且需要 运行 就像在脚本标签中一样。
我正在使用 System.import('app/X');加载它。
我尝试了各种 shim / globals 技巧来加载它,但我不太明白。
如何编写 config.js 才能导入该 X 文件,以便它看到全局 jQuery 对象?我是否必须将 X 设为 'package' 并安装它才能更好地填充它?
谢谢。
如果您通过 jspm 安装 jquery,您只需像这样设置元 'deps' 属性:
System.config({
meta: {
'app/X': {
deps: ['jquery']
}
}
});
System.import('app/X');
确保正确获取X路径并检查jspm如何设置System.config 'paths'和'map',默认情况下自动添加尾随.js(路径为*.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 作为依赖项。
是的,我读过 How do I shim a non CommonJS, non AMD package which depends on global jQuery & lodash?。
我正在尝试通过 jspm 加载 X.js,它不是 'package' 而是一个我无法控制的旧 js 文件,它需要一个全局 jQuery 对象,并且需要 运行 就像在脚本标签中一样。
我正在使用 System.import('app/X');加载它。
我尝试了各种 shim / globals 技巧来加载它,但我不太明白。
如何编写 config.js 才能导入该 X 文件,以便它看到全局 jQuery 对象?我是否必须将 X 设为 'package' 并安装它才能更好地填充它?
谢谢。
如果您通过 jspm 安装 jquery,您只需像这样设置元 'deps' 属性:
System.config({
meta: {
'app/X': {
deps: ['jquery']
}
}
});
System.import('app/X');
确保正确获取X路径并检查jspm如何设置System.config 'paths'和'map',默认情况下自动添加尾随.js(路径为*.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 作为依赖项。