使用Plovr编译模块

Using Plovr to compile modules

本文关键字:模块 编译 Plovr 使用      更新时间:2023-09-26

我正在尝试使用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

然后我转到web浏览器中的http://localhost:9810/compile?id=hello_demo,一旦它完成编译,它只显示了"core_scripts.js"的编译代码

我希望编译器已经在"c:/wf/my_project/js/build/"中创建了两个已编译的JavaScript文件,但是什么也没有。

我错过了什么吗?

提前感谢您的帮助

在http://www.klokantech.com/我们为新手准备了一组使用Plovr和Closure Library进行开发的示例。看到:

https://github.com/klokan/closure-library-plovr-hello-world-skeletons

有一个helloworld,使用Google Maps API V3的基本应用程序,一个闭包模板的演示(soy),一个OpenLayers应用程序等。

我不确定你是否真的需要编译模块-特别是如果你是Plovr和Closure的新手。闭包工具的思想是,通常完整的代码都被编译成一个.js文件——这是闭包编译器高级最小化运行的最佳方式。阅读我的博客:

http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html

无论如何,上面提到的框架示例代码还展示了如何在Plovr中使用模块,例如:动态加载复杂JavaScript代码的扩展——想象一个类似gmail的单页应用程序(SPA),其中界面的不同部分正在加载额外的功能(例如设置对话框、编辑器的Composer功能等)。代码如下https://github.com/klokan/closure-library-plovr-hello-world-skeletons中modules-apimodules所示。

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

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