【问题标题】:Using traceur compiler with meteor将 traceur 编译器与流星一起使用
【发布时间】:2014-05-10 05:36:33
【问题描述】:

我想在客户端代码(和其他 ES6 功能)上使用 Javascript 生成器,但 AFAIK 尚未在所有主要浏览器中实现或默认启用。于是我找到了traceur

但我在使用 Meteor 集成时遇到了问题。 Traceur 提供了一个命令行编译器,我可以将其称为 meteor-typescript(即使不推荐),因为我找不到有关使用 traceur 从 Javascript 编译字符串的文档。

然后,我想还需要运行时依赖项,并且必须将其提供给客户端。我可以使用凉亭吗?

提前感谢您的任何建议或指点。

编辑:我可以调用编译器(参见my meteor-traceur),但我不知道如何添加运行时依赖项。 Traceur 定义了一个 RUNTIME_PATH,但我不能将它与 api.add_files 一起使用,因为 npm 模块没有在 package.js 中导入(应该定义 Packages.on_use)。

【问题讨论】:

    标签: javascript meteor meteorite


    【解决方案1】:

    npm 依赖安装在包的 .npm 目录中。您可以通过将其添加到 package.js 来添加 traceur 运行时:

    Package.on_use(function (api) {
        api.add_files(".npm/plugin/compileTraceur/node_modules/traceur/bin/traceur-runtime.js");
    });
    

    我分叉了你的存储库并修复了这个问题:https://github.com/Sanjo/meteor-traceur

    我还创建了一个演示应用:https://github.com/Sanjo/meteor-traceur-demo

    【讨论】:

    • 谢谢您,抱歉耽搁了。现在我相信当没有任何 Meteor 特定的代码时,将 NPM 包包装到 Meteor 中没有多大意义。我目前正在考虑将 mimosa 作为一个 JS 预处理器,它还集成了 browserify。
    • Meteor 已经有自己的构建管道。 Meteor 特定代码是将工具(例如 Traceur)集成到 Meteor 构建管道中。昨天,我发布了我的 es6-now 包的第一个版本。它还允许您将 ES6 模块与 SystemJS 一起使用。 atmospherejs.com/package/es6-now
    • 太棒了!您是否知道在服务器和客户端中集成“browserify”或其他使用 NPM/Bower 包的方式?
    • 您可以正常使用Bower工具,并通过api.add_files创建一个将文件添加到客户端和服务器的智能包。例如,我用 Lodash 做到了这一点。或者使用现有的 Meteor 智能包。当您编写自己的 Meteor 代码时,您可以为客户端和服务器编写它。 Meteor 让这一切变得非常简单。我个人没有使用 Browserify 的经验。
    猜你喜欢
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2023-03-11
    • 2023-04-06
    • 2012-05-06
    相关资源
    最近更新 更多