【发布时间】:2016-08-11 14:37:02
【问题描述】:
几年前我使用闭包框架和编译器编写了一个 JavaScrip 应用程序。它大量使用 goog.require、goog.provides 和 goog.inherits,并且使用旧的 python 脚本构建它时工作正常。
我希望它再次工作,所以我更新了库和编译器并使用了我的旧 make 脚本。但是得到这个。
Closure Compiler 现在可以原生地理解并命令 Closure 依赖项,并且优于使用此脚本执行 JavaScript 编译。请迁移您的代码库。看: https://github.com/google/closure-compiler/wiki/Managing-Dependencies
我阅读了提供的链接,没有发现任何问题。所以我用这个替换了脚本。
java -jar C:/closure/closure-compiler-v20160713.jar --output_manifest _manifest.txt
--compilation_level ADVANCED_OPTIMIZATIONS --js M*.js
--js_output_file _M_min.js
它编译得很好,但是在运行时出现诸如...之类的错误
_M_min.js?v=4:23 Uncaught ReferenceError: goog is not defined
_M_min.js?v=4:54 Uncaught TypeError: Cannot read property 'extend' of undefined
我认为编译器展开了所有这些并且不需要在运行时包含 goog 库?
如果我确实将库包含在“js/goog/base.js”中,我会得到 goog.yb 不是函数等等。但我真的不认为我需要这样做。
我做错了什么。
【问题讨论】:
标签: google-closure-compiler google-closure-library