使用Plovr编译模块

时间:2013-03-11 13:06:07

标签: javascript google-closure-compiler google-closure plovr

我正在尝试使用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文件,但没有任何内容。

我错过了什么吗?

提前感谢您的帮助。

2 个答案:

答案 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-apimodules下的代码中。

答案 1 :(得分:2)

您正在使用plovr的“serve”命令,它只启动服务器(并在服务器上编译它而不生成静态文件)。您希望运行“build”命令(使用相同的选项)来生成本地服务器上的文件,如下所示:

java -jar c:/wf/my_project/plovr/plovr.jar build c:/wf/my_project/js/plovr-config.js