如何使用ceylon js(也有google闭包编译器)

How to use ceylon js (also with google closure compiler)

  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

用命令nodejs app.js什么都不做。在网页中使用时相同。我如何调用 javascript 程序,使其 运行 不使用 require.js?

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

如何在不手动或使用 require.js 连接的情况下从多个 Ceylon 模块的编译中获得一个 javascript 文件?

以上是没有使用google闭包编译器。

鉴于语言模块的大小为 1.6 MB,运行 ceylon-js 没有使用 google 闭包编译器是没有意义的。

  1. 单独使用 google 闭包编译器编译 "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 生成的文件与模型文件和语言文件链接在一起,以便使用 google 闭包编译器以高级模式编译它们以消除死代码。

真的是 3 个问题。

Ceylon 模块被编译为 CommonJS 模块。连接生成的文件将不起作用,因为每个文件都是 CommonJS 格式,这是一个很大的功能,returns 具有导出声明的对象。

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

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

关于第三个问题,我建议先放语言模块,再放其余的文件。如果您在不同的模块中有任何同名的顶层声明,您就会有冲突(只有最后一个声明会保留),即使它们没有共享,因为它们都在同一个 module/unit 中。

嗯,我认为require.js可以运行将模块编译成一个文件,然后运行 google-closure-compiler,见:http://www.requirejs.org/docs/optimization.html