AD:靠谱的微信小程序外包开发

admin

admin

发表于 2017-08-03 21:36:09

摘要:微信小程序使用第三方库(第三方js)问题 (微信小程序开发 - 微信 小程序外包开发-微信小程序 开发教程-微信小程序开发者社区,尽在 www.mntuku.cn)

比如很多人会有这样的问题:
小程序怎样引用第三方js呢?
 
第三方js是封装好的类库 想引用进来实例化使用

这个帖子就综合一下所有相关的知识,做一个整合,以便大家能够集中了了解;我觉得这个还是应该让大家了解的知识;

提示:小程序不支持window对象和document对象;

一:rpn.js:使用rpn.js实现eval函数功能
http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1513

二: @guyoung 系列文章
使用Underscore.js:http://www.wxapp-union.com/portal.php?mod=view&aid=145
使用Immutable.js:http://www.wxapp-union.com/portal.php?mod=view&aid=155
使用UUID、Base64、Chance:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1198
扩展微信小程序框架功能(1)——Promise
ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库。

扩展微信小程序框架功能(2)——Generator
Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。
 
扩展微信小程序框架功能(3)——函数功能增强
Underscore.js 和 Lodash 是最常用的JavaScript库。
 
扩展微信小程序框架功能(4)——Immutable.js
Immutable.js 是 Facebook 开发的不可变数据集合。Immutable
Data(不可变数据)一旦创建就不能被修改。通过使用Immutable
Data,可以更容易的处理缓存、回退、数据变化检测等问题,应用开发更简单。
 
扩展微信小程序框架功能(5)——Redux
​Redux 是 JavaScript 状态容器,提供可预测化的状态管理。
 
扩展微信小程序框架功能(6)—日期时间
Moment.js是一个JavaScript的日期、时间处理工具类,其对于JavaScript的日期时间处理功能非常强悍和全面。可以用在浏览器环境中使用,也可以在Node.js中。

扩展微信小程序框架功能(7)——正则表达式
XRegExp 是一个开源的 JavaScript库,提供一个参数化、可扩展的支持各种浏览器的正则表达式的实现库,支持附加语法、标志以及方法。

扩展微信小程序框架功能(8)——Xml处理
x2js是一个 实现 XML 与 JavaScript 对象之间相互转换的工具库。
 
扩展微信小程序框架功能(9)——加解密
node-uuid可以快速地生成符合规范 的 UUID。js-base64可以实现Base64编码和解码。crypto-js可以非常方便地在 JavaScript 进行加解密。

扩展微信小程序框架功能(10)——测试辅助
Chance是一个 JavaScript 随机数生成工具。Mock.js可以生成随机数据,拦截 Ajax 请求。

三:moment
http://www.wxapp-union.com/forum.php?mod=viewthread&tid=2268


四:相关讨论
相关讨论一:微信小程序使用第三方库问题?
项目中需要使用base4,克隆了一个下来https://github.com/dankogai/j...
因为小程序目前不支持直接引入 node_modules 所以我写的是路径
我在app.js里根据路径写
require(./node_module/js-base64/base64.js);
但是报错
WAService.js:3 TypeError: Cannot read property Base64 of undefined答:@jayzou
因为源码里面并没有exports Base64对象出来,自己手动exports就可以了
目前来说,我也没找到好的方法,只能修改源码强制导出 小程序的运行时环境既不是Node.js也不是浏览器,也没有暴露全局对象。。。
在Base64源码的最开始
global = {}; //在最开始加上这个
var _Base64 = global.Base64;
在最后
// thats it!
if (global[Meteor]) {
   Base64 = global.Base64; // for normal export in Meteor.js
}

module.exports = global.Base64; //最后加上这个
这样就能用了
import base64 from ./node_module/js-base64/base64.js

相关讨论二:如何引入第三方插件(网上的方法已经试过)引入第三方插件,网上有人说需要进行UMD打包,打包之后引入还是不行。有的说需要暴露接口,对插件代码进行改造,加入了module.exports = function,然后通过require引入,但是引入后还是报错。
个人引用的是strophe.js文件,求大神告知解决办法
 
去看了一下Strophe的源码。不知道你用的什么版本的。我看源码最后是这样的
function (Strophe, build, msg, iq, pres) {
    window.Strophe = Strophe;
    window.$build = build;
    window.$msg = msg;
    window.$iq = iq;
    window.$pres = pres;
};
小程序中宿主环境不是浏览器,所以没有window。这样写当然是不行的。你可以尝试修改为

function (Strophe, build, msg, iq, pres) {
    var global = {}
    global.Strophe = Strophe;
    global.$build = build;
    global.$msg = msg;
    global.$iq = iq;
    global.$pres = pres;
    module.exports = global
};
使用的时候:
var Strophe = require(./pathStrophe.js).Strophe
注:小程序和web编程是有区别的。我看了一下这个库的源码,使用了很多document, xhr之类的,这些是不支持的哦。可以查阅官方文档。
Storophe源代码

相关讨论三:小程序模块化只支持exports和module.exports吗?
CMD模式 
require("test.js");
a();//可以直接使用

小程序报错
WAService.js:1 thirdScriptError setMaxDigits is not defined;at "pages/index/index" 
page onRequest function ReferenceError: a is not defined

test.js
function a(){
.......
}
function b(){
.......
}

目前是在微信小程序使用第三方的test.js,在之前的H5项目是可以使用test.js的?目前就是不想去用exports和module.exports改变test.js。
需要加上从当前页面到该文件的完整路由 如:../../common/test.js -----当前页面位置的前一个前一个文件夹的common文件夹的test.js 文件
var test = require("test.js");
test.a();

test.js  中
module.exports = {a:a}


相关讨论四:问题:小程序如何导入第三方的JS工具库
怎样导入一个第三方的JS工具库
使用require函数
var util = require(../../utils/util.js)



简易教程:
引用其他js里的方法:http://www.wxapp-union.com/portal.php?mod=view&aid=1339
49阅读 | 0评论
你的回应
写文章

8784