NW.js + Babel:ES6导入工作但不导出?

时间:2016-11-21 17:04:29

标签: javascript node.js ecmascript-6 babel nw.js

我正在构建一个NW.js应用程序,目前有babel-standalone和React。我可以使用ES6导入,但另一方面ES6导出不起作用,控制台吐出unexpected token export。发生了什么事?

的index.html:

<html>
<head>
    <meta charset="utf-8">
    <script src="assets/react.min.js" charset="utf-8"></script>
    <script src="assets/react-dom.min.js" charset="utf-8"></script>
    <script src="assets/babel.min.js" charset="utf-8"></script>
</head>
<body>
    <script type="text/babel" src="script/App.js"></script>
</body>
</html>

(是的,Babel确实有效,因为里面的React内容运行正常)

在app.js中:

import Lib from "./script/lib.js";

(它确实正确地导出了lib.js,因为那是导致错误的文件)

在script / lib.js中:

export default class {...};

我知道我可以使用Node模块,甚至可以使用HTML脚本加载,但这不是重点。我想知道为什么export不起作用,即使Babel似乎没有被破坏,甚至import也能正常工作。

1 个答案:

答案 0 :(得分:1)

问题是Babel没有看到通过require加载的文件,并且它们按原样加载,没有转换。

有几种方法可以解决这个问题,但最简单的方法是在构建步骤中使用Babel。

处理源代码,然后加载已处理的代码nw.js环境。您可以在this boilerplate project

找到如何执行此操作的示例