我正在尝试使用Plovr编译我的JavaScript文件,如下面的配置文件中所定义:
{
"id": "hello_demo",
"paths": ".",
"closure-library": "closure-library/closure/goog/",
"mode": "ADVANCED",
"level": "DEFAULT",
"pretty-print": true,
"externs": ["prototype.js"],
"modules": {
"core_scripts": {
"inputs": "core_scripts.js",
"deps": []
},
"add_new_item": {
"inputs": "add_new_item.js",
"deps": "core_scripts"
}
},
"module-output-path": "build/module_%s.js"
}
我使用以下命令启动Plovr服务器:
java -jar c:/wf/my_project/plovr/plovr.jar serve c:/wf/my_project/js/plovr-config.js
然后我在网络浏览器中转到http://localhost:9810/compile?id=hello_demo
,一旦完成编译,它只显示“core_scripts.js”的编译代码
我希望编译器在“c:/ wf / my_project / js / build /”中创建了两个已编译的JavaScript文件,但没有任何内容。
我错过了什么吗?
提前感谢您的帮助。
答案 0 :(得分:3)
在http://www.klokantech.com/,我们为新手准备了一套用于开发Plovr和Closure Library的例子。参见:
https://github.com/klokan/closure-library-plovr-hello-world-skeletons
有一个helloworld,使用Google Maps API V3的基本应用程序,带有Closure模板(大豆)的演示,OpenLayers应用程序等。
我不确定你是否真的需要编译模块 - 特别是如果你是Plovr和Closure的新手。 Closure Tools的想法是通常将完整的代码编译成单个.js文件 - 这就是Closure Compiler Advanced最小化运行方式最好的方式。阅读我的博客文章:
http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html
无论如何,上面提到的骨架示例代码也显示了如何使用Plovr中的模块,例如。动态可加载的复杂JavaScript代码扩展 - 考虑类似Gmail的单页面应用程序(SPA),其中界面的不同部分正在加载其他功能(例如“设置”对话框,编辑器的编辑器功能等)。它位于https://github.com/klokan/closure-library-plovr-hello-world-skeletons中的modules-api
和modules
下的代码中。
答案 1 :(得分:2)
您正在使用plovr的“serve”命令,它只启动服务器(并在服务器上编译它而不生成静态文件)。您希望运行“build”命令(使用相同的选项)来生成本地服务器上的文件,如下所示:
java -jar c:/wf/my_project/plovr/plovr.jar build c:/wf/my_project/js/plovr-config.js