如何使用锡兰js(也与谷歌闭包编译器)

时间:2015-12-06 15:42:50

标签: ceylon

  1. 调用以下三个文件的串联(bash:cat ...>> app.js)产生的文件:
  2. /usr/share/ceylon/1.2.0/repo/ceylon/language/1.2.0/ceylon.language-1.2.0.js

    modules/com/example/helloworld/1.0.0/com.example.helloworld-1.0.0-model.js

    modules/com/example/helloworld/1.0.0/com.example.helloworld-1.0.0.js

    命令nodejs app.js什么都不做。在网页中使用时也是如此。如何调用该javascript程序以便在不使用require.js的情况下运行?

    请说明如何将ceylon模块和run函数以及其他函数转换为javascript并进行调用。

    如何从汇编多个锡兰模块中获取一个javascript文件,而无需手动或使用require.js连接它们?

    以上是不使用谷歌闭包编译器。

    鉴于语言模块的大小为1.6 MB,在不使用谷歌闭包编译器的情况下运行ceylon-js是没有意义的。

    1. 编译" ceylon.language-1.2.0.js"单独使用谷歌关闭编译器会导致很多警告。
    2. java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js /usr/share/ceylon/1.2.0/repo/ceylon/language/1.2.0/ceylon.language-1.2.0.js --js_output_file lib-compiled.js

      如何摆脱这些警告?

      1. 我将以什么顺序将ceylon-js产生的文件与模型文件和语言文件链接在一起,以高级模式编译它们,使用谷歌闭包编译器来消除死代码。

2 个答案:

答案 0 :(得分:2)

这些是3个问题,真的。

Ceylon模块编译为CommonJS模块。连接生成的文件不会起作用,因为每个文件都是CommonJS格式,这是一个返回带有导出声明的对象的大函数。

您可以使用--no-module选项编译模块,以获取生成的代码,而不用CommonJS格式包装。对于语言模块,您可以复制文件,只删除第一行和最后5行。

我还不知道如何摆脱你在第二个问题中提到的警告。

至于第三个问题,我建议先放置语言模块,然后再放入其余的文件。如果你在不同的模块中有任何具有相同名称的顶级声明,那么即使它们没有被共享,你也会有冲突(只剩下最后一个声明),因为它们都是相同的模块/单元

答案 1 :(得分:0)

好吧,我认为require.js可以将模块的编译运行到一个文件,然后运行google-closure-compiler,请参阅:http://www.requirejs.org/docs/optimization.html