vue-cli2使用cdn方式引入cytoscape

1. index.html头部引用

  <script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.2.19/cytoscape.min.js"></script>

2. 修改webpack.base.cong.js

module.exports = {
...
  externals: {
    cytoscape: "cytoscape"
  }
...
}

3. 在相关组件的ts中

import { Vue, Component, Watch, Prop } from "vue-property-decorator"
import cytoscape from "cytoscape"
@Component({})

export default class Cytoscape extends Vue {
    /* ---- 变量 ---- */
    cy;

    /* ---- 函数 ---- */

    /* ----生命周期 ---- */
    mounted() {
        this.cy = cytoscape({
                           container: document.getElementById('cy'); // 组件中要有id="cy"的dom元素
            ...   //配置项
        });
    }
}        

 

4. 注意,我这里使用的是ts,所以需要cytoscape 的类型声明文件,使用npm install @types/cytoscape 安装的声明文件是2.7.10版本的(估计后面版本没有及时更新),落后于我项目中引入的cytoscape 3.2.19版本,有些声明会不一致。

解决办法:a. 在自己项目的types文件夹中新建文件cytoscape.d.ts;

b. 找到./node_modules/_@types_cytoscape@2.7.10@@types/cytoscape/index.d.ts,复制其内容到上一步新建的文件cytoscape.d.ts;删除node_modules下的_@types_cytoscape@2.7.10@@types

c. 在使用cytoscape 3.2.19报错时,去修改cytoscape.d.ts声明;

d. 以上只是暂时解决方案,期待cytoscape同步类型声明文件

 

cytoscape其他使用方式: http://js.cytoscape.org/#getting-started/including-cytoscape.js
我之所以选择使用cdn引入,主要是因为项目已经引入不少的框架,导致打包上线时项目太大,对于这种本身功能较强比较厚重而我用到的功能又不多的框架,便使用cdn引入了

转载于:https://www.cnblogs.com/XHappyness/p/9915373.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值