如何使用ceylon-js(也与谷歌闭包编译器一起使用)


  1. 调用由以下三个文件的串联(bash:cat…>>app.js)产生的文件:

/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

使用命令CCD_ 4什么也不做。在网页中使用时也是如此。如何调用那个javascript程序,使其在不使用require.js的情况下运行?

请给出ceylon模块和run函数以及包含在其中的其他函数如何转换为javascript并被调用的规则。

如何从几个ceylon模块的编译中获得一个javascript文件,而不手动或使用require.js连接它们?

以上内容未使用谷歌闭包编译器。

考虑到语言模块的大小为1.6MB,如果不使用google闭包编译器来运行ceylon-js是没有意义的。

  1. 使用谷歌闭包编译器单独编译"ceylon.language-1.2.0.js"会导致很多警告

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产生的文件与模型文件和语言文件链接在一起,以便使用谷歌闭包编译器在高级模式下编译它们以消除死代码

实际上,这是3个问题。

Ceylon模块被编译为CommonJS模块。由于每个文件都是CommonJS格式的,所以连接结果文件是不起作用的,CommonJS是一个返回带有导出声明的对象的大函数。

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

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

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

好吧,我认为require.js可以将模块编译成一个文件,然后运行谷歌闭包编译器,请参阅:http://www.requirejs.org/docs/optimization.html

相关内容

最新更新