dan*_*ast 11 google-closure google-closure-library libphonenumber
在我的localhost开发期间,我试图自己托管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>
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我仍然依赖于外部托管的组件:闭包库.我尝试过使用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>
Run Code Online (Sandbox Code Playgroud)
但是goog.proto2.Message没有.我收到以下错误:
Uncaught TypeError: Cannot read property 'Message' of undefined
Run Code Online (Sandbox Code Playgroud)
该错误来自phonemetadata.pb.js脚本:
goog.inherits(i18n.phonenumbers.NumberFormat, goog.proto2.Message);
Run Code Online (Sandbox Code Playgroud)
我能做些什么才能完全自我主持libphonenumber?
Tom*_*ard 26
您可能已经解决了这个问题,但我找到了一种非常简单的方法来将所有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==
Run Code Online (Sandbox Code Playgroud)
您可以添加或删除所需的任何额外文件.
然后单击"编译".
这将从存储库中检索每个最新文件并将其构建为单个javascript文件.
现在您不必担心处理所有的闭包库代码,因为您已经编译了所需的内容.
希望这可以帮助.
编辑:我发现这对于处理库的更新非常有用.如果您只是在编译器中重新运行它,您将获得包含所有最新更新的新javascript文件.
小智 24
由于谷歌将他们的代码移动到github,因此过程已经改变,如果只是一点点:
1)转到http://closure-compiler.appspot.com/home
2)插入以下内容
// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name libphonenumber.js
// @use_closure_library true
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/metadata.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/asyoutypeformatter.js
// @formatting pretty_print
// ==/ClosureCompiler==
Run Code Online (Sandbox Code Playgroud)
3)单击"编译"
4)完成:当前编译的libphonenumber.js文件应出现在RHS面板中
| 归档时间: |
|
| 查看次数: |
6159 次 |
| 最近记录: |