gpt4 book ai didi

google-closure - 如何在本地托管 google libphonenumber?

转载 作者:行者123 更新时间:2023-12-04 01:16:38 24 4
gpt4 key购买 nike

在我的本地主机上开发期间,我试图自托管 libphonenumber图书馆。我正在尝试以下操作:

<script src="//closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script>
<script>goog.require('goog.proto2.Message');</script>
<script src="scripts/vendor/pn/phonemetadata.pb.js"></script>
<script src="scripts/vendor/pn/phonenumber.pb.js"></script>
<script src="scripts/vendor/pn/metadata.js"></script>
<script src="scripts/vendor/pn/phonenumberutil.js"></script>
<script src="scripts/vendor/pn/asyoutypeformatter.js"></script>

这是有效的,但我仍然依赖于外部托管的组件:闭包库。我试过使用 closure-lite ,这是(显然,我是新来的)闭包库的一个非常完整的版本,可用于自托管。我尝试执行以下操作:
<script src="scripts/vendor/closure-lite.js"></script>
<script>goog.require('goog.proto2.Message');</script>
<script src="scripts/vendor/pn/phonemetadata.pb.js"></script>
<script src="scripts/vendor/pn/phonenumber.pb.js"></script>
<script src="scripts/vendor/pn/metadata.js"></script>
<script src="scripts/vendor/pn/phonenumberutil.js"></script>
<script src="scripts/vendor/pn/asyoutypeformatter.js"></script>

但是 goog.proto2.Message不可用。我收到以下错误:
Uncaught TypeError: Cannot read property 'Message' of undefined

错误来自 phonemetadata.pb.js脚本:
goog.inherits(i18n.phonenumbers.NumberFormat, goog.proto2.Message);

我该怎么做才能完全自托管 libphonenumber ?

最佳答案

您可能已经解决了这个问题,但我发现了一种非常简单的方法将所有 libphonenumber 代码编译到一个包含闭包库内容的文件中。

转至 http://closure-compiler.appspot.com/home

这是谷歌的闭包编译器的在线版本。

然后输入如下内容:

// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name libphonenumber.js
// @use_closure_library true
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/metadata.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/asyoutypeformatter.js
// @formatting pretty_print
// ==/ClosureCompiler==

您可以添加或删除所需的任何额外文件。

然后点击编译。

这将从存储库中检索每个最新文件并将其构建到单个 javascript 文件中。

现在你不需要担心处理所有的闭包库代码,因为你需要的已经被编译进去了。

希望这会有所帮助。

编辑:我发现这对于处理库的更新也非常有用。如果您只是在编译器中重新运行它,您将获得包含所有最新更新的新 javascript 文件。

关于google-closure - 如何在本地托管 google libphonenumber?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com