如何将Traceur与嵌套目录结构一起使用?

时间:2015-12-14 22:39:55

标签: javascript ecmascript-6 traceur es6-module-loader

我想在我的下一个项目中使用ES6,我正在使用Traceur作为转换程序。我按照Getting Started指南中描述的方式工作。但是,我想以Compiling Offline页面上描述的方式将我的所有源文件编译成单个缩小文件。但我无法使用嵌套目录结构中组织的多个源文件。

这是一个解释问题的示例项目。它在根文件夹中有index.html,在src下有两个.js文件。

<project-root>
/index.html
/src/one.js
/src/two.js

的index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script src="traceur.js" type="text/javascript"></script>
  <script src="bootstrap.js" type="text/javascript"></script>
  <script type="module" src="src/two.js"></script>
  <script type="module">
    import Two from 'src/two.js';
    let t = new Two();
    console.log(t);
  </script>
  <title>Title</title>
</head>
<body>

</body>
</html>

的src / one.js

export default class One {

  constructor() {
    console.log("One constructor");
  }

}

的src / two.js

import One from 'src/one.js';

export default class Two extends One {
  constructor () {
    console.log("Two constructor");
    super();
  }
}

正如我所说,如果我在浏览器中打开index.html,它将正常工作,将两个实例打印到控制台。

但是当我尝试离线编译时,我收到以下错误

PS D:\code\flattraceur> traceur.cmd src/two.js --out out\two.js
[Error: Error: ENOENT: no such file or directory, open 'D:\code\flattraceur\out\src\one.js'
Specified as src/one.js.
Imported by ../src/two.js.
Normalizes to src/one.js
locate resolved against base 'D:/code/flattraceur/out/'
]

如您所见,在编译src / two.js时,traceur在输出目录下查找src / one.js。我在traceur上找不到任何可以让我自定义搜索引用模块的根目录的选项。我也尝试了--dir选项,但也失败了。

PS D:\code\flattraceur> traceur.cmd --dir src out

  Error: At least one input file is needed

有什么建议吗?

0 个答案:

没有答案