【发布时间】:2016-12-06 22:13:57
【问题描述】:
我正在尝试在我的应用程序中使用 this 包。
它似乎是用ES6 编写的,所以我需要一个像babel 这样的转译器。我已经开始了一个新项目并尝试了以下方法:
- 创建新的索引 .html / .js 文件进行测试。
npm install audio-effectsnpm install gulp gulp-babel babel-preset-es2015- 创建
.babelrc
尝试使用python -m SimpleHTTPServer 从dist 文件夹运行此程序后,我收到错误:index.js:3 Uncaught ReferenceError: require is not defined。
经过一番挖掘,这是因为require can't be used client-side。所以接下来我考虑使用WebPack 来允许我使用require。
我进入了我的dist 文件夹(我转译的 javascript 所在的位置)并运行:
webpack ./index.js index.js
但现在我收到了错误 index.js:78 Uncaught SyntaxError: Unexpected token import。
谁能看到我缺少的东西(NPM-ES6-Gulp-WebPack 教程除外)?我似乎陷入了 WebPack-ing 和编译的循环中。
index.html
<!DOCTYPE html>
<html>
<body>
<h4>Welcome</h4>
<button onclick="startAudio()">Start Audio</button>
<script src="js/index.js"></script>
<script type="text/javascript" src="bundle.js" charset="utf-8"></script>
</body>
</html>
index.js (pre-babel / WebPack - 化)
import {HasAudioContext} from 'audio-effects';
function startAudio() {
console.log("Start Audio...");
let audioContext = null;
if (HasAudioContext) {
console.log("Has Audio CTX");
audioContext = new AudioContext();
}
else {
console.log("No Audio CTX");
}
}
gulpfile.js
var gulp = require("gulp");
var babel = require("gulp-babel");
gulp.task("default", function () {
return gulp.src("src/app.js")
.pipe(babel())
.pipe(gulp.dest("dist"));
});
【问题讨论】:
-
好吧,webpack 需要一个 babel-loader 来读取 ES6。你把它包括在内了吗?另一个可能更好的选择是将 Gulp 与 Browserify 一起使用,它还允许您在浏览器中使用模块。这样你就不需要涉及 webpack。
-
这对我来说是全新的,你有关于如何一起使用 gulp / browserify 的好资源吗?感谢您的回复!
-
@Daniel_L 我对谷歌很熟悉,我想他们可能会推荐一个他们个人认为有用的。
-
有 10 亿个,每个都根据您的确切需求而有所不同...“样板”是一个很好的关键字
标签: javascript node.js gulp ecmascript-6 webpack