如何导出模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何导出模块相关的知识,希望对你有一定的参考价值。
我开始从https://egghead.io/technologies/es6学习ECMAScript 6方式,知道仍有很多可能会改变,但想早点开始。
但是,当我按照(https://egghead.io/lessons/ecmascript-6-es6-modules-es2015-import-and-export)上的教程说明完全相同时,我得到一个错误,我不知道我可能做错了什么。
未捕获的ReferenceError:未定义require
Babel转换为ES5后该行的代码
"use strict";
var _distExporter = require("dist/exporter");
console.log("2 + 3=", (0, _distExporter.sumTwo)(2, 3));
//# sourceMappingURL=importer.js.map
开发人员提到CommonJS和WebPack作为一种解决方案甚至提到了RequireJS,但在教程中没有说明我应该编写或使用替代库。
我的html就是这个
<html>
<head>
<script src="dist/importer.js"></script>
</head>
<body>
</body>
</html>
我的importer.js是
import { sumTwo } from "dist/exporter";
console.log( "2 + 3=", sumTwo(2,3))
我的exporter.js是
function sumTwo(a, b){
return a + b;
}
export { sumTwo };
我不知道我哪里出错了。我正在使用BabelJS(https://babeljs.io/)
如果您在Node下而不是在浏览器中运行此代码,您应该会看到您期望的结果。 Node了解CommonJS需要调用,并将离开并为您抓取其他文件。
浏览器不知道要求是什么特别的。但我们可以使用工具让浏览器了解。这是Browserify的一个例子,正如其他人提到的你也可以使用WebPack,但我认为WebPack的学习曲线要陡峭得多。
首先,你需要一些模块。
npm install -g browserify
npm install --save-dev babelify
然后我们可以像这样使用这些模块。
browserify main-file.js -o output-file.js -t babelify
这将导致您的源文件检查每个文件中的require调用,并将所需的其他文件添加到该bundle。然后它运行Babel变换,将ES6转换为ES5。最后,它将所有内容包含在一些需要在浏览器中工作的代码中。
以上是关于如何导出模块的主要内容,如果未能解决你的问题,请参考以下文章