我正在考虑将http://code.google.com/p/libphonenumber/用于一个完善的项目。今天,该项目不使用 Google 的 JavaScript 库,支持 jQuery、jQueryUI、requirejs 等。
libphonenumber 看起来很棒……除了 javascript 版本(svn co http://libphonenumber.googlecode.com/svn/trunk/javascript/libphonenumber-js)带有 goog.require 调用。如果运行演示(libphonenumber-js/i18n/phonenumbers/demo.html,如果您按照建议签出),它会从closure-library.googlecode.com 中提取大量谷歌库:
GET base.js
GET deps.js
GET error.js
GET string.js
GET asserts.js
GET array.js
GET useragent.js
GET browserfeature.js
GET tagname.js
GET classes.js
GET math.js
GET coordinate.js
GET size.js
GET object.js
GET dom.js
GET json.js
GET util.js
GET descriptor.js
GET fielddescriptor.js
GET message.js
GET serializer.js
GET objectserializer.js
GET stringbuffer.js
GET lazydeserializer.js
GET pbliteserializer.js
我相信如果我使用闭包编译器编译它(“如果你给 use_closure_library 参数的值为 true,编译器会在源代码中查找 goog.require() 语句并提供任何此类语句请求的闭包库代码。” , https://developers.google.com/closure/compiler/docs/api-ref)我可以减少请求的原始数量,但这对于电话号码解析器来说仍然是相当多的内容,甚至是功能齐全的一款。
我的问题有两个可能的答案:
- 一种在 JavaScript 中使用 libphonenumber 而无需引入所有 Google JavaScript 基础库的方法
- 具有 JavaScript 和 Java 实现的备用独立(因为没有几十个依赖项)一流的电话号码处理库
任何和所有建议都非常感谢。