javascript - 使用 Plovr 编译模块

标签 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 文件,但什么也没有。

我错过了什么吗?

提前感谢您的帮助。

最佳答案

http://www.klokantech.com/我们为新手准备了一套用 Plovr 和 Closure Library 开发的例子。见:

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

有一个 helloworld,使用 Google Maps API V3 的基本应用程序,一个带有 Closure Templates (soy) 的演示,一个 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),其中界面的不同部分正在加载附加功能(例如设置对话框、编辑器的 Composer 功能等)。它在https://github.com/klokan/closure-library-plovr-hello-world-skeletonsmodules-apimodules 下的代码中.

关于javascript - 使用 Plovr 编译模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339368/

相关文章:

javascript - 删除具有所述 child ID 的 child 的 child

javascript - 如何使用 Google Closure Compiler 声明动态属性?

javascript - Google 闭包编译器和 UMD 模式

javascript - 闭包编译器不会删除未使用的属性

javascript - 创建脚本以将 Google Closure 用于多个 javascript 文件

javascript - 修复了表格滚动中的 td

javascript - Jquery 无法在 WordPress 中运行;函数 PHP

javascript - 正则表达式否定关闭/打开标签

JavaScript Closure - 监听类中所有元素的事件

node.js - Google Closure 编译器移动了?它给出了 302 错误