Javascript Qlik如何导入依赖于其他的JS库
我正在构建一个自定义扩展,并要求Chartjs这样做 我有以下几种进口产品Javascript Qlik如何导入依赖于其他的JS库,javascript,requirejs,qlikview,qliksense,Javascript,Requirejs,Qlikview,Qliksense,我正在构建一个自定义扩展,并要求Chartjs这样做 我有以下几种进口产品 define( [ 'jquery', './PropertiesPannel', '//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.js', '//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js',
define( [
'jquery',
'./PropertiesPannel',
'//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.js',
'//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js',
'//cdn.jsdelivr.net/npm/chartjs-plugin-zoom@0.7.5/dist/chartjs-plugin-zoom.min.js'
],
function ( $, ProperitesPannel, Chart) {
'use strict';
....
我得到以下控制台错误
hammerjs.js:1 Uncaught SyntaxError: Unexpected token '<'
3setup-view.d91ae8b7669a979d2ec1.js:8 TypeError: Cannot read property 'helpers' of undefined
at chartjs-plugin-zoom.min.js:11
at Object.execCb (setup-view.d91ae8b7669a979d2ec1.js:8)
at n.check (setup-view.d91ae8b7669a979d2ec1.js:8)
at n.<anonymous> (setup-view.d91ae8b7669a979d2ec1.js:8)
at setup-view.d91ae8b7669a979d2ec1.js:8
at setup-view.d91ae8b7669a979d2ec1.js:8
at each (setup-view.d91ae8b7669a979d2ec1.js:8)
at n.emit (setup-view.d91ae8b7669a979d2ec1.js:8)
at n.check (setup-view.d91ae8b7669a979d2ec1.js:8)
at n.enable (setup-view.d91ae8b7669a979d2ec1.js:8)
hammerjs.js:1未捕获的语法错误:意外的标记“这一个是有问题的。。。chartjs插件尝试加载chart.js
,它不是有效的模块id,而是文件名。所以即使我在require.config.path中设置了它,RequireJS也会尝试将其作为文件加载。。。所以这里有一些解决办法:
require.config({
路径:{
jquery:'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min',
“chart”:“//cdnjs.cloudflare.com/ajax/libs/chart.js/2.9.3/chart.bundle”,
hammerjs:“//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min”
}
});
var originalDefine=定义;
window.define=函数(a、b、c){
//当chartjs-plugin-zoom.min.js尝试加载chart.js时,从定义的路径加载图表模块:)
if(a&&a.length&&a[0]=='chart.js'){
[0]=“图表”;
}
原始定义(a、b、c);
};
要求([
“jquery”,
“图表”,
"hammerjs",,
'//cdn.jsdeliver.net/npm/chartjs-plugin-zoom@0.7.5/dist/chartjs插件zoom.min.js'
],函数($,图表,锤子,图表JS){
"严格使用",;
log('helloworld');
log($,chart,hammer,chartjs);
});
它可以很好地加载,所以你可以很好地使用很好的方法,我最终使用了未修改的源代码,因此所有内容都添加到了原型中,而不需要Chartjs。可能不是最佳实践,但它是适合我的用例的解决方法!