什么是jQuery脱库?

就是让 jQuery插件 脱离对 jQuery 的依赖。

你的项目初始时没考虑使用jQuery(例如使用 Angular 等为主框架的项目),但到了后期想用某个jQuery插件,又不想把这个jQuery打包进你的项目,这时候脱库是你的最佳选择;

虽然叫 jQuery脱库,但也只是把插件需要 jQuery API 的部分单独拿出来再打包一个库。

需要用到另一个库,这次的主角是 recordjq.js,和 smartJQ 在同一个目录。

如何使用 recordjq.js ?

在jQuery后引入 recordjq.js,然后再引用你的插件;

                
    <!-- jQuery文件 -->
    <script src="jquery.js"></script>
    <!-- recordjq.js -->
    <script src="recordjq.js"></script>
    <!-- 想要脱库的插件 -->
    <script src="cropper.js"></script>
            

把当前插件的所有api跑一遍后(插件里一般会有测试案例或者全apidemo,只需要在demo内的jquery下引入recordjq),在控制台输入 jqrecord.output() 得到的字符串信息,复制粘贴到下面的输入框;

得到的 smartJQ 就是最小的依赖文件;这时候将这个文件的内容,粘贴到相关插件的匿名函数内,就能让插件脱离依赖。(依照插件提供的API,可能需要重新暴露函数来使用插件)

如果你对javascript有一定的了解可能知道了,这个库是用来记录jQuery API 接口是否使用,然后在通过 按需加载 来得到最小的库;

如果你需要使用多个jQuery插件,也可以在 recordjq 后引入多个插件,跑完所有插件的API后,粘贴到上面,得到最小依赖库。

若你需要整合的框架没有使用 jQuery 特有的选择器,你还可以将 smartJQ-rebulid 里的 SmartFinder内的代码 替换成 owner.querySelectorAll