zoukankan      html  css  js  c++  java
  • ts项目+webpack+juuery 插件的引入

    限于对ts项目 webpcack +htmlwebpack插件打包 加第三方jquery 插件 加载方式的资料的困乏.最近这些天一直卡在这如何引用jquery 插件上

    先是测试成功了 第三方非jquery 的js  声明文件引用方式加载 这个js 并使用,在上一个文章中有说明.

    又在jquery插件 引用上废脑子. 先是三斜线引入.结果死活引入不了那个第三方,后来发现一篇文章中说明,三斜线只能应用于d.ts 声明中,不能用在ts中,要想用需配置ts配置文件,文章也没说怎么配置

    果断放弃三斜线引入.

    /// <reference types="jquery.cycle2"/>
    /// <reference path="../../node_modules/@types/jquery.cycle/index.d.ts" />

    后来查来查去,继续看了看微软声明文件库,

     找到knob 长的挺好看,看看百度里边有没有在ts中使用的案例,结果有在angular一个使用案例

    Angular6如何引入jQuery-knob

    https://www.cnblogs.com/linzhanfly/p/9485515.html

    谢天谢地谢谢作者.天无绝人之路

    // componnet的头部引入
    import * as $ from 'jquery';
    import 'jquery-knob';
    
    // componnet中使用
    ngOnInit(): void {
        $(function() {
          $(".dial").knob();
        });
    }
    
    // html中
    <input type="text" value="75" class="dial">
    ngOnInit() 有语法错误,我直接给注释掉了
    // componnet的头部引入
    import * as $ from 'jquery';
    import 'jquery-knob';
    
    $(function() {
        $(".dial").knob();
    });

    我去,打包后居然成功了, import 'jquery-knob'; 类似这种方式我尝试过,以前报语法错误.之类 当时可能d.ts 没找到,给蒙混过去,再也无尝试,一直在三斜线引入上找了不少资料.

    jquery 插件 因为很多是和jquery 的合体 

    类似 $(".dial").knob(); $是jquery本源的,knob是在上扩展的. 插件的d.ts声明文件没法通过模块 输出的方式让当前引用页调用,只能全部加载.加载不成就报比如knob方法无定义的错误
    webpack 在此应该是把这个页面的引用给收集起来,编译成js 或者前端页面的时候就一体了. 插件内的方法,也就可以被页内使用了
    下边是成功页面

     一下通过web页面分析一下webpack 打包机制,不调试,不会真切的感受其原理

    一: HtmlWebpackPlugin 是个组装页面的工具,把一个空页面 加入 模版 加js 生成一个filename 指定好的.

    new HtmlWebpackPlugin({
    filename: 'ztreedemo/index.html',
    template: './examples/ztreedemo/index.html',
    chunks: ['ztreedemo','commons']
    })

    比如下边

     上边这个页面是最终生成的页面 实际代码如下

     看看ztreedemo.js    1000多行还打包了项目中其他文件的配置

     翻译后的代码 引用juery 和knob 都给找到了

    二:资源文件 是看插件引入成功与否  的标准.

    这个是资源文件,为了方便调试,给输出了,当前内加载了当前用到的 包

    还得细细调试css  图片等加载方式 .

     
    技术交流qq群:143280841
  • 相关阅读:
    【Vue】 修饰符sync
    【VUE】vue路由跳转的方式
    【Element】elementui的Cascader 级联选择器,在懒加载的时候数据无法回显的解决方案
    【ES6】利用ES6 Set 将数组去重
    【.NETCORE】Refit 框架
    【.NETCORE】ASP.NET Core SignalR
    【Visual Studio Code】驼峰翻译助手
    VueX(Vue状态管理模式)
    hdmi 随笔
    ad 差分布线 等长布线
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/15394252.html
Copyright © 2011-2022 走看看