我有四个ES6模块和一个模块来公开来自其他四个模块的数据,如下所示:
export { Board } from './board';
export { Card } from './card';
export { Game } from './game';
export { Player } from './player';
我的目标是拥有一个可以通过systemjs api消费的JavaScript模块文件:
import { Card } from 'game';
似乎递归计算和连接依赖项的最佳方法是通过browserify,从ES6编译到ES5的最佳方法是6to5。所以,我查看了6to5ify节点模块。我复制并粘贴了example:
中的代码var fs = require("fs"),
browserify = require("browserify"),
to5ify = require("6to5ify");
browserify({ debug: false })
.transform(to5ify)
.require("./src/main.js", { entry: true })
.bundle()
.pipe(fs.createWriteStream("./dist/game.js"));
最后,我将game.js加载到另一个ES6 Web项目中。但是,此时我得到错误,systemjs模块加载器开始寻找game.js模块的依赖关系,就好像它们是本地依赖关系一样:
获取http://localhost:9000/client/board.js 404(未找到) ES6模块-loader.src.js:2510
获取http://localhost:9000/client/card.js 404(未找到) ES6模块-loader.src.js:2510
获取http://localhost:9000/client/game.js 404(未找到) ES6模块-loader.src.js:2510
获取http://localhost:9000/client/player.js 404(未找到) ES6模块-loader.src.js:2510
但是,我的构建文件的输出包含上面的模块,可以找到它here。
由于问题可能出在browserify,6to5,systemjs加载模块的方式,或者解析和读取构建文件内容的方式,我不知道在哪里查看或者要问谁。